Spring @模拟,NullPointerException
第一种情况有效,而第二种情况返回userDao的NullPointerException。我完全误解了这是怎么回事吗 这很有效Spring @模拟,NullPointerException,spring,mockito,Spring,Mockito,第一种情况有效,而第二种情况返回userDao的NullPointerException。我完全误解了这是怎么回事吗 这很有效 UserDao userDao; @Before public void setUp() throws Exception { userDao = Mockito.mock(UserDao.class); when(userDao.userExists("TestUser")).thenReturn(true); } userDao的NullPoin
UserDao userDao;
@Before
public void setUp() throws Exception {
userDao = Mockito.mock(UserDao.class);
when(userDao.userExists("TestUser")).thenReturn(true);
}
userDao的NullPointerException
@Mock
private UserDao userDao;
@InjectMocks
private UserService userService;
@Before
public void setUp() throws Exception {
when(userDao.userExists("TestUser")).thenReturn(true); // NPE
}
您需要添加
MockitoAnnotations.initMocks(this)
到@Before
方法创建@Mock
注释字段。有关详细信息,请参见:
必须调用initMocks(此)方法来初始化带注释的mock。
在上面的示例中,initMocks()是在测试基类的@Before(JUnit4)方法中调用的。对于JUnit3,initMocks()可以转到基类的setup()方法。您还可以将initMocks()放在JUnit运行程序(@RunWith)中,或者使用内置的运行程序:MockitoJUnit44Runner、MockitoJUnitRunner
尝试在
@Before
方法中添加以下内容:MockitoAnnotations.initMocks(this)代码>。请参阅有关此的详细信息。