单元测试 – 测试第三方API

我想测试第三方API,例如forecast.io,但我不太确定如何实现我想要实现的目标.

我已经在互联网上读过我应该使用模拟对象.但是,模拟对象的概念不是我需要的,因为我不想测试我的解析实现而不是网络调用本身.

我想测试一下,如果URL仍在工作,如果我的API密钥仍在工作,如果请求仍然是预期的格式,那么GSON不会崩溃或其他与网络调用本身直接相关的事情.

有什么好办法吗?

非常感谢

TLDR;我不需要模拟对象!

最佳答案 我将尽力回答这个问题.我知道OP希望避免测试每种类型的响应,但如果您依赖这些数据来保证用户和/或收入的连续性,您可以考虑创建一个api调用者,以便您可以查看api响应的每个部分.以及测试URL,api密钥等.我会使用OO语言,但我确信还有其他方法.

一般来说:

>创建一个可以调用api的进程/库/软件
>序列化/存储您期望的数据(OP中的GSON)
>使用xUnit或NUnit对其进行单元测试
>使其自动运行每x个时间段并生成包含成功/更改/失败消息的电子邮件

如果您指望它,这不是一个小项目 – 需要拧紧所有螺钉和螺栓.每一步都值得拥有自己的问题(并且可能已经有一个问题).

[我可以在C#中添加一些示例代码,如果有帮助的话]

如何自动运行并向您发送电子邮件是一个完全不同的问题,但希望这可以让您了解面向对象的库如何帮助您测试您自己的软件计划使用的每个数据.并不是每个api主机都会及时通知你/如果发生了变化,你甚至可能知道如果有什么事情发生了变化.

点赞