如何在API包装器上进行集成测试

问题描述 投票:0回答:2

我有一个api包装器,它只是您的基本控制器/服务,它使用第三方客户端来实际处理请求。可以通过某种方式对它进行模拟以进行集成测试吗?

Clientservice clientService = new ClientService(urlHere);
clientService.findBooks(); //Handles request within, my wrapper does not directly call endpoints

集成此测试的正确方法是什么?只需用休息调用我的控制器并模拟clientService返回?不确定是否可以通过其他方式执行此操作。

编辑:更改标题和信息以使其更清晰。

java integration-testing wiremock
2个回答
0
投票

Clientservice是您的家乡课程,只是模仿而已。如果要模拟/模拟http服务的行为(您可以与wget或邮递员进行交流),则可以使用Wiremock。

也就是说,如果是关于集成测试,您实际上可以选择模拟支持http的服务,而根本不触摸ClientService。但是,您还需要为整个测试定义一个更宽的边界,以使其成为integration test,而不是unit test。您首先需要使用Wiremock设置ClientService的后勤服务的响应。相反,您不会直接检查ClientService的结果。然后,将使用ClientService在更大的上下文中执行某些操作,例如Web前端。然后,您可以根据给定的模拟后备服务,根据预期结果检查该前端的行为。该级别的工具可能是CucumberSelenium

进行集成测试或单元测试不是技术决定。通常,您首先需要进行单元测试,而这是强制性的,并且根据需要或根据测试要求或部门的指示添加集成测试。但是我有一种印象,您在谈论的更多是关于单元测试的信息,我是否对此感到误解?


0
投票

您在智能熊Soapui工具中模拟了api服务:

https://www.soapui.org/soap-mocking/service-mocking-overview.html

© www.soinside.com 2019 - 2024. All rights reserved.