gpt4 book ai didi

java - 模拟的restTemplate.postForObject未在执行测试时使用

转载 作者:行者123 更新时间:2023-12-02 02:47:22 25 4
gpt4 key购买 nike

我使用 mickito 模拟了 postForObject Resttemplate 调用。

Mockito.when(restTemplate.postForObject(Mockito.eq(remoteServerlocation), Mockito.any(Input.class), Mockito.eq(String.class))).thenReturn(responseString);

但在实际代码中,这个模拟值没有被使用并尝试调用远程位置。

String responseString = restTemplate.postForObject(url, input, String.class);

根据我的理解,我模拟了完全相同的调用。但不工作。对此的任何帮助将不胜感激。

我正在 Autowiring 包含测试用例类中的测试方法的类。我使用 new 创建了restTemplate 这个测试类。

测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Application.class)
public class ActionImplTest {

@Autowired
private ActionImpl recommendation;

RestTemplate restTemplate = new RestTemplate();

@Test
public void performActionTest() throws Exception {
String textInput = "InputText";
Map<String, Object> map = new HashMap<String, Object>();

map.put("convId", "C123");
map.put("reID", 1);
map.put("chID", "Chann_1");

String convID = "1254356671563";
String chId = "2";
String responseString = "Success"
Mockito.when(restTemplate.postForObject(Mockito.eq("remoteServerlocation"), Mockito.any(Input.class), Mockito.eq(String.class))).thenReturn(responseString);

Map<String, Object> response = recommendation.performAction(textInput, map, convID, chId);
}
}

最佳答案

在测试结束时添加一个verify步骤,mockito将为您提供一些关于预期内容和实际调用内容的提示:

Mockito.verify(restTemplate).postForObject(
Mockito.eq(remoteServerlocation), Mockito.any(Input.class), Mockito.eq(String.class));

关于java - 模拟的restTemplate.postForObject未在执行测试时使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44387158/

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