一尘不染

在量角器测试中访问Angular

angularjs

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

用例是我有一个可以转换文本的服务,并且我想访问该服务以转换实际测试脚本中的某些数据。我知道addMockModule量角器中有这种方法,但是我不知道如何为此目的使用它。

将不胜感激!


阅读 191

收藏
2020-07-04

共1个答案

一尘不染

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

例如。如果要计算http://angularjs.org/网站(在“添加某些控件”下)中的待办事项数量,请执行以下操作:

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

./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);
});

参见示例:https//github.com/andresdominguez/protractor-
meetup/blob/master/test/e2e/api-
helper.js

2020-07-04