在通常的mock测试中,使用@Mock
和@InjectMocks
注释时,应该以@RunWith(MockitoJUnitRunner.class)
运行正在进行测试的类。
@RunWith(MockitoJUnitRunner.class)
public class ReportServiceImplTestMockito {
@Mock
private TaskService mockTaskService;
@InjectMocks
private ReportServiceImpl service;
// Some tests
}
但在一些示例中,我看到使用@RunWith(PowerMockRunner.class)
:
@RunWith(PowerMockRunner.class)
public class Tests {
@Mock
private ISomething mockedSomething;
@Test
public void test1() {
// Is the value of mockedSomething here
}
@Test
public void test2() {
// Is a new value of mockedSomething here
}
}
有人能指出这两者的区别以及我应该在什么情况下使用其中之一吗?
FacesContext.getCurrentInstance()
静态方法,以便您可以验证对addMessage(...)
方法的预期调用。此外,这里提出的其他声明要么事实上是错误的,要么存在高度争议。 - Rogério