gpt4 book ai didi

java - 如何模拟namedJdbcTemplate以获得在一个函数中使用两次的两个不同结果

转载 作者:行者123 更新时间:2023-12-01 18:18:52 24 4
gpt4 key购买 nike

在我的名为JdbcTemplate的类中,在单个函数中使用了两次以获得不同的结果。但 mock 它只会给出一个结果。如何为其准备测试用例?

我的类(class):

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();

}

最佳答案

关于java - 如何模拟namedJdbcTemplate以获得在一个函数中使用两次的两个不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60316216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com