Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 进入角内量角器测试_Javascript_Angularjs_Testing_Protractor - Fatal编程技术网

Javascript 进入角内量角器测试

Javascript 进入角内量角器测试,javascript,angularjs,testing,protractor,Javascript,Angularjs,Testing,Protractor,是否可以像在单元测试中一样在量角器测试中访问角度 用例是我有一个转换文本的服务,我想访问该服务来转换实际测试脚本中的一些数据。我知道在量角器中有addMockModule方法,但我不知道如何使用它 非常感谢您的帮助 有一个名为evaluate()的函数。在dom中找到一个元素,然后运行表达式 比如说。如果要计算网站中的待办事项数量(在“添加一些控制”下),请执行以下操作: 在量角器中打开元素资源管理器 ./node_modules/protractor/bin/elementexplorer.j

是否可以像在单元测试中一样在量角器测试中访问角度

用例是我有一个转换文本的服务,我想访问该服务来转换实际测试脚本中的一些数据。我知道在量角器中有
addMockModule
方法,但我不知道如何使用它


非常感谢您的帮助

有一个名为evaluate()的函数。在dom中找到一个元素,然后运行表达式

比如说。如果要计算网站中的待办事项数量(在“添加一些控制”下),请执行以下操作:

在量角器中打开元素资源管理器

./node_modules/protractor/bin/elementexplorer.js
browser.get('http://angularjs.org/')
element(by.model('todoText')).evaluate('todos.length').
  then(function(count) {
    console.log(count)
  });
它应该给你2分

您还可以使用executeAsyncScript

browser.executeAsyncScript(function(callback) {
  // Here we use document.body, but your app may live under a different
  // element.
  var service = angular.element(document.body)
      .injector()
      .get('myService');
  service.query({}, function(data) {
    callback(data);
  });
}).then(function (output) {
  console.log(output);
});

查看一个示例:

明白了,让我试试executeAsyncScript。第一个似乎是在示波器上执行更多简单的操作。github上的量角器meetup提供的示例非常好,非常感谢。请注意,第二个变体实际上创建了一个新的注入器。这可能导致以下错误:
未知提供程序:$rootElementProvider
使用
angular.element([DOM element]).injector().get('myService')以获取现有的注入器。我们不再使用此技术。我将更新答案。在e2e测试中访问除视图以外的任何内容是否是一种良好的做法?