潍坊网站制作推广,家装室内设计培训班哪里,淄博建站哪家好,wordpress 答题1、什么情况下会使用mock技术 #xff08;1#xff09;需要将当前被测单元和其依赖模块独立开来#xff0c;构造一个独立的测试环境#xff0c;不关注被测单元的依赖对象#xff0c;只关注被测单元的功能逻辑 ----------比如被测代码中需要依赖第三方接口返回值进行逻辑处… 1、什么情况下会使用mock技术 1需要将当前被测单元和其依赖模块独立开来构造一个独立的测试环境不关注被测单元的依赖对象只关注被测单元的功能逻辑 ----------比如被测代码中需要依赖第三方接口返回值进行逻辑处理可能因为网络或者其他环境因素调用第三方经常会中断或者失败无法对被测单元进行测试这个时候就可以使用mock技术来将被测单元和依赖模块独立开来使得测试可以进行下去。 2被测单元依赖的模块尚未开发完成而被测单元需要依赖模块的返回值进行后续处理 ----------比如service层的代码中包含对Dao层的调用但是DAO层代码尚未实现 3被测单元依赖的对象较难模拟或者构造比较复杂 ----------比如支付宝支付的异常条件有很多但是模拟这种异常条件很复杂或者无法模拟比如查询聚划算的订单结果无法在测试环境进行模拟 2、Mock技术分类 1手动构造mock对象 ---------------比如可以自己写某个接口方法的实现根据需要编写返回值测试代码中使用该实现类对象 缺点会增加代码量在写mock对象代码时有可能引入错误 2使用开源代码提供的构造mock方法 --------------比如easyMock提供了对接口类的模拟能够通过录制、回放、检查三步来完成大体的测试过程可以验证方法的调用种类、次数、顺序可以令Mock对象返回指定的值或抛出指定异常 3、EasyMock使用 1引入easyMock ------------在maven工程中通过pom配置依赖关系 dependency groupIdorg.easymock/groupId artifactIdeasymock/artifactId version3.0/version scopetest/scope /dependency ------------在普通java工程中通过添加外部包的方式 2使用easyMock过程 1使用EasyMock生成Mock对象 pingJiaDao mockControl.createMock(IPingJiaDao.class); 2设定Mock对象的预期行为和输出 EasyMock.expect(pingJiaDao.getGoodPingJiaRate(storeId)).andReturn(0.11); 3将Mock对象切换到Replay状态 EasyMock.replay(pingJiaDao); 4调用Mock对象方法进行单元测试 storeService.setStoredao(pingJiaDao); double rate storeService.getStoreGoodRate(storeId); 5对Mock对象的行为进行验证。 EasyMock.verify(pingJiaDao); 4、其他easyMock功能 1特殊的mock对象niceMock 2参数匹配器 3重置mock对象 4模拟异常抛出 5设置调用次数 本文出自seven的测试人生公众号最新内容请见作者的GitHub页http://qaseven.github.io/