単体テストで行うように、分度器テスト内でangularにアクセスできますか?
使用例は、テキストを変換するサービスがあり、そのサービスにアクセスして実際のテストスクリプト内のデータを変換することです。分度器にaddMockModule
メソッドがあることは知っていますが、この目的のためにそれを使用する方法がわかりません。
助けていただければ幸いです!
Evaluate()という関数があります。 DOMで要素を見つけて、式を実行します。
例えば。 http://angularjs.org/ Webサイト(Add Some Controlの下)でTodoの数をカウントする場合は、次のようにします。
分度器で要素エクスプローラーを開きます
./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