angularjs - 需要在 Protractor 测试用例中访问我的 angular.service

标签 angularjs testing protractor end-to-end

我正在使用 Protractor 为我的 Angular 应用程序编写 e2e 测试用例。我的应用程序中有一个名为 UserService 的服务,它保存用户信息。我在此服务中有一个 API getUser 来获取用户数据。我需要在 Protractor 测试用例中访问 UserService 。

我查看了一些文章,发现我可以使用 browser.executeAsyncScript 来访问我的服务。但如果我使用这种方法,我就会遇到注入(inject)问题。

在我的应用程序中,模块定义为:

var angApp = angular.module('myApp', ['ngCookies','ngResource']); 

所有指令、服务和 Controller 都是使用 angApp 模块创建的。

现在我需要访问我的 UserService,以便我可以在 Protractor 测试用例中调用 getUser API。

有人可以帮助我在 Protractor 测试用例中访问 userService 吗?

最佳答案

您面临的问题是 Protractor 测试是在与浏览器不同的进程中运行的。 Protractor 测试无法直接访问在浏览器中运行的任何脚本。两者之间无法直接传输数据(最好的办法就是通过 DOM 进行交互)。

我猜测您的 UserService 是某种用于操作服务器上的用户的 CRUD API。我的建议是直接从 Protractor 测试向服务器发出 REST 请求,以便吸引用户。在测试和应用程序之间共享代码并不容易。

关于angularjs - 需要在 Protractor 测试用例中访问我的 angular.service ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29431957/

相关文章:

angularjs - 以 Angular 获取选择元素的选定文本(不是值)

javascript - 用户登录后添加一些内容

angularjs - 使用 Angular - Flask 将请求方法更改为 OPTIONS/CORS

javascript - AngularJS - ng 绑定(bind)和 Bootstrap 开关

python - 在 Nose 测试类中定义的固定装置是否在函数之间被调用?

java - 数据库单元应该忽略行的顺序

c# - Nsubstitute:收到检查错误的方法

javascript - Protractor - 比较数字

angularjs - Internet Explorer Selenium protractor e2e 测试

node.js - 函数内的 TypeScript 全局声明