我们一直在使用protractor
进行端到端测试。模拟连接错误
现在我们试图涵盖几个角落案例,涉及修改来自API端点请求的响应 - 对此,我们使用的是protractor-http-mock
,它提供了一种易于使用的方法来用预定义的模拟替换HTTP响应。
但是,如果我们想测试一个突然发生连接丢失的情况怎么办?在这种情况下我们有什么选择?
换句话说,我们希望实现一个案例,当对特定端点的请求会产生网络连接错误并查看我们的应用程序如何反应时。
我接受任何建议,我目前思考以下策略:
- 看看是否有第三方的NodeJS类似
protractor-http-mock
- 模拟
$http
angularjs服务 库
- 火了一个代理,并以某种方式控制它在测试(
grunt-connect-proxy
看起来相当成熟,虽然我不知道是否有可能动态改变行为代理从规范到规范) - 在浏览器级别控制它 - 例如,与网络限制谷歌浏览器的功能(虽然我敢肯定它是一件
selenium
无法控制,Network throttling with chrome and selenium)(浏览器插件/扩展?)
单元测试非常别致,开发人员经常过度测试。我认为你在测试中做得太过分了。我们绝对可以通过模拟丢失的连接的方式来工作,但丢失的连接应该是一个集成测试。测试丢失连接的最佳方法是手动剪切连接或停止服务器并观察结果。这不是您想要自动重复的测试,而是需要手动操作。当你的模拟/场景非常复杂,需要进行单元测试和调试时,你对单元测试过度发挥作用。 – 2015-04-04 03:32:35
@DaveAlperovich好吧,这实际上是一个我们询问的(使用'量角器')的端到端集成测试(不是单元测试)。尽管如此,我接受这样的观点,即不值得付出努力。谢谢! – alecxe 2015-04-04 04:01:09
良好的观察。我的语言暴露了我的偏见。我认为端到端测试是单元测试的延伸(多单元 - 乐高风格)。我假定链中的所有组件都使用可以整齐模拟的分类数据。当我们深入研究非确定性数据或环境问题时,我将其视为手动工作。 – 2015-04-04 04:08:56