超详细 springboot 整合 Mock 进行单元测试!本文带你搞清楚! 2、在对代码开展单元测试时, 为何常常会出现这般状况: class A依赖class B, class B又依赖class C与class D, class C依赖……, class D依赖……。其一, 被测对象所依赖的对象构造繁杂。当我们要对class A进行单元测试时? 就得构造繁多的class B、C、D等依赖, 构造步骤众多且耗时颇长的对象。对于它们的构造, 我们能够借助mock去构造过程繁复的对象以用于class A的测试。毕竟我们仅仅是想测试class A的行为是否契合预期, 我们并不需要去测试依赖对象。2.尚未开发完成的是被测单元所依赖的模块, 不过被测对象进行测试得依赖模块的返回值, 像层的代码里其中包含对 dao 层的调用, 然而 dao 层代码还没能实现, 又像 web 的前端要依赖于后端接口才能获取数据来进行联调测试, 可后端接口却尚未开发完成以及数据库此刻还无法正常使用, 不过却需要测试功能逻辑是不是可行。3、目前于Java之中为主流的Mock测试工具包括了常用的Mock技术, 有JMock等等, 而目前内建的是框架。4、中文文档里的中文官网。集成测试与单元测试存在差异, 其一, 在集成测试的测试过程当中, 会开启整个容器, 去调用DB或者依赖的外部接口等, 只是所访问的环境乃是测试环境, 此过程最大程度地还原生产环境过程, 然而耗时长, 其二, 单元测试并不启动整个应用, 仅仅针对单个接口或者类展开测试。不调用数据库、外部接口, 将所依赖的服务都进行Mock处理, 仅对代码逻辑展开测试。在这个过程当中, 测试用例耗费的时间比较短暂。构建一个我们所需要的对象, 这是可行的可以对具体的对象执行mock操作, 也能够mock接口。spy用于构建监控对象, 其作用是验证某种行为。when指的是当执行何种操作的时候, 通常会配合其他操作一起使用。对某个操作在执行之后会产生怎样的效果进行表述, 此效果涵盖返回何种结果, 抛出一个明确指定的异常, 做出某种相应的情况, 且这种相应需由我们自己来定义, 还要明确某个操作执行了几回次, 该操作至少实施一次, 该操作最少要执行指定的次数, 该操作最多执行指定的次数, 该操作最多执行一回, 不进行任何处理, 返回一个结果, 抛出一个指定的异常, 指定一项操作并传入od, 返回真实的业务执行结果, 此结果仅能用于监控对象2当中。关于参数匹配, 则是针对任何int类型的参数, 与之类似的还有/等等。当eq等于某个值之际, 若为对象类型, 那么查看方法isA, 其匹配某种类型, 借助正则表达式来进行匹配, 返回操作, 指定一个返回的值, 抛出一个指定异常, then指定一个操作, 此操作需传入自定义thod, thod返回真实业务执行的结果, 该结果仅能用于监控对象的使用, 添加Maven依赖, 存在Java环境依赖, 是org.core 4.4, 环境依赖需注意, 默认的Mock框架如下, 和junit同样, 凭借-boot--test就能够做到了。org..boot -boot--test2、、Mock运用Mock: 用来顶替.mock去创建mock对象, 打造一个Mock实例, 得依托环境。: 生成一个实例, 其余凭借Mock或者Spy注解创建的mock会被注入到使用该实例里.直白地明白就是: 如图所示, 实体类借助注解注入了三个实体: 、 和。