我在一个项目中工作,其中包含了莫基托的测试。我需要向这个文件添加更多的测试,所以我添加了一个简单的jqwik测试,但是如果我尝试运行所有测试,所有mockito测试都会被忽略。
发布于 2022-06-19 11:00:20
“我如何在Mockito中使用jqwik?”是个常见的问题。下面是讨论可能的解决方案。最简单的一个:
class HelloTest {
@Mock private Logger logger;
@InjectMocks private MySubjectUnderTest sut;
private AutoCloseable mockitoCloseable;
@BeforeProperty //@BeforeTry
void initMocks() {
mockitoCloseable = MockitoAnnotations.openMocks(this);
}
@AfterProperty //@AfterTry
void closeMocks() throws Exception {
mockitoCloseable.close();
}
@Property
void testWithRandomData(@ForAll final String data) {
sut.doSomething();
// Verify whatever should happen to logger instance
// during doSomething() call, e.g.:
Mockito.verify(logger).log(Level.WARNING, "my message");
}
}您可以使用@Before/AfterProperty或@Before/AfterTry,这取决于您的模拟是为每次尝试重置还是为每个属性重置。
https://stackoverflow.com/questions/72649887
复制相似问题