测试通过 HTTP 通信的单元的好方法
-
09-06-2019 - |
题
通常,我发现自己想要为访问 HTTP 资源的部分代码编写单元测试,作为其正常功能的一部分。您是否找到了编写此类测试的好方法?
解决方案
从主代码中提取访问 HTTP 资源的部分。为该新组件创建一个接口,在您的测试中,模拟该接口并返回您可以可靠控制的数据。
您可以将 HTTP 访问作为集成测试进行测试。
其他提示
这通常是我会模拟测试的函数......我不喜欢我的测试依赖于任何外部因素......如果它是我无法控制的外部资源(例如第 3 方网站),那就更糟糕了。
数据库是我经常不会嘲笑的少数外部资源之一......我改用 DBUnit。
我最近不得不编写一个访问 wiki 并进行一些基本文本抓取的组件。我编写的大多数测试都验证了正确的 HTTP 响应代码。就验证实际资源而言,我会保存已知资源的离线版本,并检查算法是否正在收集/处理正确的数据。
根据您使用的语言或框架,启动本地运行的 HTTP 服务器来提供您想要的资源可能很简单。
不隶属于 StackOverflow