我正在编写Protractor测试,以验证在我们的应用程序中成功地创建了报告。报表是通过对话框中一系列复杂的UI交互创建的,并通过AJAX POST请求保存到REST。
我已经为模型中的复杂UI交互编写了测试,但是对于如何在相同的Protractor测试中测试POST请求,我感到很困惑。理想情况下,我希望能够针对POST请求的有效负载进行断言,以验证UI是否向API发送了正确的数据。
需要注意的是,我不想模拟HTTP调用--我需要通过它,因为随后的量角器测试导航到报告并执行额外的检查。我的第一个想法是以某种方式钩入$httpBackend.passThrough()方法,但我在这方面没有任何成功。
有什么办法做到这一点吗?
发布于 2015-05-14 11:47:24
因为随后的量角器测试将导航到报表并执行其他检查。
如果您检查报告是否包含与提交的匹配的数据,则您正在测试(尽管是间接的)该帖子是否已成功通过。有一个合理的论点认为,这对E2E测试来说已经足够了:它测试应用程序的行为是否符合用户的要求。用户并不关心它是如何实现的: POST、websockets、信鸽;-)
记住,这类测试的通常目标是,如果有什么东西坏了,它们就会失败。如果POST没有正确完成,那么验证显示的报告的后续测试就会失败。
缺点是,与测试帖子相比,您所掌握的关于哪里出错的信息要少一些。然而,单元测试可能会有所帮助。如果您有一个失败的单元测试来本地化该问题,则需要编写一个使其通过的修补程序。如果您没有失败的单元测试,您可以通过调试来调查问题,添加一个突出显示问题的失败测试,并修复代码以使其通过。
https://stackoverflow.com/questions/30225643
复制相似问题