【发布时间】:2019-10-15 00:45:21
【问题描述】:
我有一些 Mockito 的测试课程。我尝试通过 TestSuite 聚合它们,但它有错误。
第一个测试用例:
@RunWith(MockitoJUnitRunner.class)
public class GetLastLoginTimeTest {
@Test
public void happyScenario_OK() throws Exception{
....
}
....
}
第二个测试用例:
@RunWith(MockitoJUnitRunner.class)
public class FetchUserLoginHistoryTest {
@Test
public void happyScenario_OK() throws Exception{
....
}
....
}
套件测试类:
@RunWith(MockitoJUnitRunner.class)
@SuiteClasses({GetLastLoginTimeTest.class , FetchUserLoginHistoryTest.class})
public class LoginHistoryBLTestSuite {
错误:
org.mockito.exceptions.base.MockitoException:
No tests found in LoginHistoryBLTestSuite
Is the method annotated with @Test?
Is the method public?
at org.mockito.internal.runners.RunnerFactory.create(RunnerFactory.java:75)
at org.mockito.internal.runners.RunnerFactory.createStrict(RunnerFactory.java:40)
at org.mockito.junit.MockitoJUnitRunner.<init>(MockitoJUnitRunner.java:154)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at ....
如果我改变了
@RunWith(MockitoJUnitRunner.class)
到
@RunWith(Suite.class)
然后 mockito 期望因 NullPointerException 而失败。
【问题讨论】:
-
我们不应该将
@RunWith(MockitoJUnitRunner.class)用于代表套件的类。现在,如果我们使用@RunWith(Suite.class)运行它,这对我有用。你能分享代码和 NPE 堆栈跟踪吗?
标签: mocking junit4 test-suite