断言$ http请求有效负载而不模仿它们

时间:2015-05-13 21:40:17

标签: angularjs protractor

我正在编写Protractor测试以验证在我们的应用程序中成功创建报告。通过对话框中的一系列复杂UI交互创建报告,并通过AJAX POST请求保存到REST API。

我已经为模态中的复杂UI交互编写了测试,但我对如何在相同的Protractor测试中测试POST请求感到茫然。理想情况下,我希望能够对POST请求的有效负载进行断言,以验证UI是否正在向API发送正确的数据。

重要的是要注意我不想模拟HTTP调用 - 我需要它通过,因为后续的量角器测试导航到报告并执行其他检查。我的第一个想法是以某种方式挂钩到$ httpBackend.passThrough()方法,但我没有取得任何成功。

任何想法如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

  

因为随后的量角器测试导航到报告并执行其他检查

如果您检查报告中是否包含与提交的匹配的数据,则尽管是间接测试POST是否成功完成,但您仍然可以进行测试。有一个合理的论据认为这足以进行E2E测试:它测试应用程序的行为与用户想要的一样。用户并不关心它是如何实现的:POST,websockets,信鸽; - )

请记住,此类测试的通常目标是,如果某些内容被破坏,他们就会失败。如果POST没有正确完成,那么验证显示报告的后续测试将失败。

缺点是,如果您设法测试POST,那么您所遇到的错误信息会少一些。但是,单元测试可以提供帮助。如果您有一个失败的单元测试来解决问题,那么您可以编写一个使其通过的修复程序。如果您没有进行失败的单元测试,可以通过调试来调查问题,添加突出问题的失败测试,​​并修复代码以便通过。