角度量角器e2e测试

use*_*797 11 json jasmine angularjs protractor

我正在使用Protractor为我的Angular应用程序编写端到端测试.我可以模拟httpBackend进行单元测试,但我想实际调用服务器并获取JSON响应并再次写入测试返回的数据.
我已经在stackoverflow上阅读了很多,但无法理解这是如何完成的.

我使用$ http吗?如何将它注入我的Jasmine测试中?如何将响应JSON恢复到我的Jasmine测试中?

任何帮助或资源链接以及执行此操作的说明将会有所帮助.

我再次不想模拟服务器,我想要打服务器并获得JSON.

谢谢!

Pau*_*ulL 5

我此刻正在努力解决这个问题.我认为简短的答案是你设置的应用程序与你自己手动测试它的方式完全相同 - 因此Protractor实际上只是一个机器人用户,它没有(很好,几乎没有)访问应用程序的内部.

因此,如果您的应用程序需要Web服务器(并且大部分都是),那么您启动该Web服务器,然后将量角器通过浏览器连接到您的应用程序并进行练习.

对于我的情况,我的目标是在开始运行我的量角器e2e测试之前使用grunt调用执行基本数据库设置的任务 - 这应该给我一个已知的数据库状态.

举个例子,我一直在编写一个使用Rails 4和AngularJS的教程,关于使用量角器进行e2e测试的部分不是特定于轨道的,可能很有用:http: //technpol.wordpress.com/2013/一十六分之一十一/ 5-端至端测试/


小智 3

Protractor 应用于完整堆栈的端到端测试。

在这种情况下,测试通常会练习 Angular 应用程序(填写表单、按下按钮),这将触发 Angular 应用程序调用 REST 服务器,该服务器返回数据,您的 Angular 应用程序会在 DOM 更改中转换这些数据,然后您的端到端 -结束测试断言。

这意味着您可能希望在启动 Protractor 之前启动应用程序服务器(我认为它托管 Angular 应用程序,并且是 REST 后端)

如何做到这一点超出了 Protractor 的范围。

其中的困难通常是如何设置数据库,以便 e2e 测试知道返回 JSON 服务时会发生什么。