我试图在mocking框架中添加一个功能,当有一个方法被存根化但从未被实际调用时,测试类会失败,即。要么测试包含太多的stubbing,要么测试的代码没有遵循预期的路径。
我已经可以进行检查了,我计划在JUnit扩展实现的@AfterAll
方法中进行检查,如下所示:
@ExtendWith(MyExtension::class)
class TestClass {
@Test
fun myTest() {
// stub a function
// run some test code
}
}
class MyExtension : AfterAllCallback {
override fun afterAll(context: ExtensionContext) {
if (not all stubbed methods have been called) {
throw AssertionError("Something")
}
}
}
但是,在afterAll
主体中抛出AssertionError
不会导致测试失败。
这对我来说是有意义的,因为afterAll
应该在所有测试之后执行,当测试结果已经计算出来时,但是我想知道是否有一种方法可以在所有测试执行之后触发测试类失败。
1条答案
按热度按时间guykilcj1#
这似乎是您使用的IDEA版本的特定问题,因为我可以确认IJ 2023.1.1的行为符合预期: