列表的 Mockito 问题
Mockito issue with List
我有一个 DAO 方法,它 returns 一个列表。
现在我试图在我的服务层中模拟这个 DAO class 但是当我调用 DAO 方法时,即使我已经模拟了 DAO 方法,它还是给了我一个空
下面是示例代码片段,
public class ABCTest {
@InjectMocks
ABC abc = new ABC();
@Mock
private ABCDao dao;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
dao = Mockito.mock(ABCDao.class);
Mockito.when(dao.getListFromDB()).thenReturn(Arrays.asList("1","2","3"));
}
@Test
public void testServiceMethod() {
abc.serviceMethod(); // Inside this method when the DAO method is called, it is giving me an empty list even though I have mocked it above.
}
任何指点都会有所帮助
- 不要使用
MockitoAnnotations.initMocks(this);
而是使用 @RunWith(MockitoJunitRunner.class)
- 您正在调用
dao = Mockito.mock(ABCDao.class)
,它会覆盖 MockitoAnnotations.initMocks(this)
创建的 dao
- ABC 中的
ABCDao
实例现在不同于测试用例的 dao
成员。
我只能假设以下操作会失败:
assertTrue(dao == abc.getDao())
解决方法:删除下面一行
dao = Mockito.mock(ABCDao.class);
我有一个 DAO 方法,它 returns 一个列表。
现在我试图在我的服务层中模拟这个 DAO class 但是当我调用 DAO 方法时,即使我已经模拟了 DAO 方法,它还是给了我一个空 下面是示例代码片段,
public class ABCTest {
@InjectMocks
ABC abc = new ABC();
@Mock
private ABCDao dao;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
dao = Mockito.mock(ABCDao.class);
Mockito.when(dao.getListFromDB()).thenReturn(Arrays.asList("1","2","3"));
}
@Test
public void testServiceMethod() {
abc.serviceMethod(); // Inside this method when the DAO method is called, it is giving me an empty list even though I have mocked it above.
}
任何指点都会有所帮助
- 不要使用
MockitoAnnotations.initMocks(this);
而是使用@RunWith(MockitoJunitRunner.class)
- 您正在调用
dao = Mockito.mock(ABCDao.class)
,它会覆盖MockitoAnnotations.initMocks(this)
创建的 - ABC 中的
ABCDao
实例现在不同于测试用例的dao
成员。
dao
我只能假设以下操作会失败:
assertTrue(dao == abc.getDao())
解决方法:删除下面一行
dao = Mockito.mock(ABCDao.class);