This question already has answers here:
How to tell a Mockito mock object to return something different the next time it is called?
(5个答案)
4个月前关闭。
在我的名为JdbcTemplate的类中,单个函数中使用了两次以获取不同的结果。但是嘲笑它只会得到一个结果。如何准备测试用例呢?
我的课:
测试类别:
我试过两次,但只会保留一个结果。
mockito.doreturn无法给出任何结果,并在函数内部调用了真实方法,提供了空结果
(5个答案)
4个月前关闭。
在我的名为JdbcTemplate的类中,单个函数中使用了两次以获取不同的结果。但是嘲笑它只会得到一个结果。如何准备测试用例呢?
我的课:
public void Getsomething(){
Result1 = namedJdbcTemplate.queryForObject(
"SomeSQLString1", params, String.class);
Result2 = namedJdbcTemplate.queryForObject(
"SomeSQLString2", params, String.class);
测试类别:
@Test
public void getNewRecordsTest2(){
Mockito.when(namedJdbcTemplate.queryForObject(Mockito.anyString(), Mockito.any(MapSqlParameterSource.class),
Mockito.any(String.class))).thenReturn(Result1);
Mockito.when(namedJdbcTemplate.queryForObject(Mockito.anyString(), Mockito.any(MapSqlParameterSource.class),
Mockito.any(String.class))).thenReturn(Result2);
/**calling actual*/
SomeClass.Getsomething();
}
我试过两次,但只会保留一个结果。
mockito.doreturn无法给出任何结果,并在函数内部调用了真实方法,提供了空结果
@Test
public void getNewRecordsTest2(){
Mockito.doReturn(Result1).when(namedJdbcTemplate).queryForObject("SomeSQLString1", params, String.class);
Mockito.doReturn(Result2).when(namedJdbcTemplate).queryForObject("SomeSQLString1", params, String.class);
/**calling actual*/
SomeClass.Getsomething();
}
最佳答案