gpt4 book ai didi

tdd - 如何测试外部服务?

转载 作者:行者123 更新时间:2023-12-04 17:59:22 24 4
gpt4 key购买 nike

我们有一个应用程序,它在处理一些数据时必须从不属于我们的应用程序(即外部应用程序)的数据库中查询数据。我们把这个查询逻辑放在一个外部服务项目中,主应用通过http调用这个外部服务。对于主要应用程序的集成测试,我们模拟了此 Http 服务的回复。

我想知道是否有人可以建议一种最佳方法来测试此外部服务,该服务需要进行诸如测试映射逻辑和查询逻辑之类的事情。该服务基本上只是查询外部数据库并发回结果。我们写了sql语句来获取数据,没有使用 Entity Framework 。

如有任何建议,我们将不胜感激。

最佳答案

测试外部服务时,如果该服务具有可重复的行为会有所帮助。

例如,如果您可以说对外部服务的特定查询将始终返回相同的可预测结果,那么您可以为此编写测试。

这并不总是可行的,因为您并不总是能够控制外部数据库包含的数据。

我会说最好的测试方法按照它们的好坏程度降序排列:

创建测试数据并验证

理想的方法是您的测试可以创建一些新的测试数据,然后运行服务以确认数据按预期返回。最后,它将通过删除创建的测试数据进行整理。

这种方法的好处是您可以更加确信外部更改不会破坏测试。您还可以通过插入适当的数据来测试服务的特定功能。

验证已知数据

如果外部服务不允许创建数据,下一个最佳方法是测试您知道永远正确的结果。例如,如果您的服务正在进行身份验证,那么您将使用您知道服务中存在且不会更改的帐户进行检查。

此方法依赖于特定数据不变。在身份验证示例中,始终存在更改用于测试的帐户的密码的风险,因此您的测试将失败。

验证正确的操作

最差的解决方案是简单地使用有效参数调用服务并确保不返回错误代码。

您可以确认服务已启动并正常工作,但您对返回数据的有效性没有信心。

非功能测试

除了测试工作服务之外,您可能还希望测试故障情况,例如服务停机或无法联系。您如何处理外部数据库中的故障?当数据库重新联机时它是否正常恢复?

关于tdd - 如何测试外部服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37471071/

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