我正在使用 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/