哦嘞啊嘞
哦嘞啊嘞
> 如果对mapper中的方法的 **调用** 是发生在`AServiceImpl`类里的,那么直接在`AServiceImplTest.Mock`类型里定义与目标调用相同前面的Mock方法应该会生效。 > > 但如果实际 **调用** 的代码是写在抽象父类`AbstractService`中的,这种场景属于TestableMock支持得不太好的一种情况,就是被Mock的逻辑不在被测类里,此时需要额外创建一个与父类`AbstractService`绑定的Mock类型`AbstractServiceMock`,放在测试目录与`AbstractService`类相同的包路径下面,然后在`AbstractServiceMock`里定义相应的Mock方法。 好的,多谢回复。如果后续`TestableMock`能支持这种内部调用的场景那真是极好的。
> 正确。 > > `TestableMock`使用默认约定命名来简化配置,这种约定方式本身符合单元测试的最佳实践(测试类命名为被测类+Test,使用相同包路径),统一的单测规则有助于提高代码可读性和可维护性。 > > 对于确实不符合约定的情况,也可以通过`@MockWith`等辅助注解来进行适配。 @linfan 您好,我的项目里都是按配置一使用Mock的,但是最近单元测试类越来越多,发现某些测试类在单独执行时可以通过,但是多个测试类/包的同时执行就会报错,有时候甚至在一个测试类下执行多个测试方法也会报错。报错的原因就是**mock方法没有走进去**。目前我通过修改maven-surefire-plugin,添加如下配置来解决这个问题。 `false3` 测试方法里面使用了很多MOCK_CONTEXT,但最后我都会在@AfterAll里调用MOCK_CONTEXT.clear()。 `有时候甚至在一个测试类下执行多个测试方法也会报错`,这个问题我就是使用了MOCK_CONTEXT,奇怪的是,我没有往里面放任何值,甚至手动设置了false,但多个测试方法执行的时候,还是走到了mock方法里的true分支,最后我把当前测试类的MOCK_CONTEXT去了,直接使用当前测试类的Map属性,问题解决。
I have the same question, especially in a **pressure test**. The sequence(Mono) won't go on, and the exception same as above had been thrown after several hours with no regularity....
@agorbachenko Yes, but I think `spring-tx` maybe a breakthrough point.