测试,调用外部系统接口实现用Mock替换
程序员文章站
2022-04-01 23:41:54
...
mock,利用spring的BeanPostProcessor接口,junit运行时mock会替换掉既有的对象mFundClient
pom.xml文件增加下面的包
import org.easymock.EasyMock; import org.easymock.IMocksControl; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import com.common.facade.constants.SysRetCodeConstants; import com.common.integration.mbp.MFundClient; import com.common.integration.mbp.bean.FundAccountInfo; public class MBPClientMock implements BeanPostProcessor { @Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if ("mFundClient".equals(beanName) || bean instanceof MFundClient) { IMocksControl mocksControl = EasyMock.createControl(); MFundClient clientMock=mocksControl.createMock(MFundClient.class); FundAccountInfo res=new FundAccountInfo(); res.setMemo(SysRetCodeConstants.SUCCESS.getMessage()); res.setRespCode(SysRetCodeConstants.SUCCESS.getCode()); res.setMerchantCustomerId("2000010000000002"); //03类型 clientMock.queryFundAccountDetail(EasyMock.anyObject(String.class),EasyMock.anyObject(String.class)); EasyMock.expectLastCall().andStubReturn(res); EasyMock.replay(clientMock); return clientMock; }else return bean; } @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { return bean; } }
pom.xml文件增加下面的包
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> <version>3.2</version> </dependency> <dependency> <groupId>org.codehaus.groovy</groupId> <artifactId>groovy-all</artifactId> <version>2.2.2</version> </dependency> </dependencies>
上一篇: oracle 如何按照in排序