我正在尝试模拟存储库,但是它不起作用(在起作用之前)。
@Mock
public UserRepository mockedUserRepository;
....
@InjectMocks
ClassDAOImpl daoImplSUT;
....
@Test
public void shouldTest() {
Mockito.when(mockedUserRepository.findAll()).thenReturn(operators);
List<User> users= daoImplSUT.getAllUsers();
}
我不知道为什么不起作用。调试时,我可以检查模拟的存储库是否为空。然后,我获得一个NullPointerException。
你能帮我吗? 非常感谢。
答案 0 :(得分:0)
对于Junit 4:
在测试类上使用@RunWith(MockitoJunitRunner.class):
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class ExampleTest {
//...
}
有关更多信息,请参见文档https://www.javadoc.io/doc/org.mockito/mockito-core/2.2.28/org/mockito/junit/MockitoJUnitRunner.html
对于Junit 5:
在测试类上使用@ExtendWith(MockitoExtension.class):
@ExtendWith(MockitoExtension.class)
public class ExampleTest {
//...
}
答案 1 :(得分:0)
您没有初始化模拟。
MockitoAnnotations.initMocks(this)
每个测试或测试类中的@ExtendWith(MockitoExtension.class)
注释MockitoAnnotations.initMocks(this)
每个测试或测试中的@RunWith(MockitoJUnitRunner.class)
注释
课