Angular Scenario Runnerの E2E テストを書いているときに、query()
次の方法に出会いました。
element(selector, label).query(fn)
ドキュメントには次のように記載されています。
関数 fn(selectedElements, done) を実行します。ここで、selectedElements は指定された jQuery セレクターに一致する要素であり、done は fn 関数の最後に呼び出される関数です。ラベルはテスト出力に使用されます。
そこで、html ページの一連のボタンの it-case を作成しました。
it('should display all buttons on page load', function () {
var buttonText = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
element('button', 'UI elements').query(function (selectedElements, done) {
selectedElements.each(function (idx, elm) {
expect(elm.innerText in buttonText).toEqual(true);
});
done();
});
});
テスト実行の結果、失敗した 10 個の期待句のリストとテキストを受け取りました。
true が期待されていましたが、未定義でした
中間デバッグは、elm.innerText in buttonText
条件が真実であることを示しました。
だから私の質問は、何がうまくいかなかったのですか?done()
メソッドの使い方が間違っていませんか?