ストーリー:私たちは、手/ポインタカーソルを持っている要素を期待するカスタムのジャスミンマッチャを使用してきたカスタムジャスミンマッチャと約束
は:
beforeEach(function() {
jasmine.addMatchers({
toHaveHandCursor: function() {
return {
compare: function(actual) {
return {
pass: actual.getCssValue("cursor").then(function(cursor) {
return cursor === "pointer";
})
};
}
};
},
});
});
それは素晴らしい作品そしてテストは読みやすく:
expect(queuePage.sortByButton).toHaveHandCursor();
問題:
期待は失敗し、現在、我々は、フォームでのコンソール上の赤いテキストの完全に読めない巨大な塊を得る:
ElementFinder({ptor_期待
- :分度器({getProcessedConfig:機能、forkNewDriverInstance :Function、restart:Function、 controlFlow:関数、スケジュール:Function、setFileDetector:Function、 getSession:Function、getCapabilities:Function、終了:関数、 actions:function、touchActions:Function、executeScript:Function、 executeAsyncScript:Function 、call:関数、待機:機能、スリープ: 機能、getWindowHandle:機能、getAllWindowHandles:機能、 getPageSource:機能、クローズ:機能、getCurrentUrl:機能、 のgetTitle:機能、findElementInternal_:機能、 findElementsInternal_ ...スクロールの10分の... 、クリックしてください: 機能、のSendKeys:機能、GETTAGNAME:機能、getCssValue: 機能、のgetAttribute:機能、のgetText:機能、のgetSize: 機能、のgetLocation:機能、ISENABLED:機能、isSelected: 機能、提出:機能、クリア:Function、isDisplayed:Function、 getOuterHtml:Function、getInnerHtml:Function、getId:Function、 getRawId:関数、シリアライズ:Function、takeScreenshot:Function}) は手のカーソルを持っています。
質問:なぜそれが起こっている
? 代わりに、マッチャーを改善して代わりにユーザーフレンドリーなエラーを出力できますか? のような何か:
Expected 'auto' to be equal to 'pointer' cursor value.
私が理解から
、我々は独自の正規表現エンジンのmessage
価値を提供する必要があるだろうが、私はに実際の要素のcursor
CSS値を渡す方法を完全にわからないんだけどメッセージ。ここで私はこれまで持っているものです。
toHaveHandCursor: function() {
return {
compare: function(actual) {
return actual.getCssValue("cursor").then(function(cursor) {
return {
pass: cursor === "pointer",
message: "Expected '" + cursor + "' to be equal to 'pointer' cursor value."
};
});
}
};
},
私はいくつかの理由で、私はテストの実行後にコンソール上で同じエラーメッセージが表示され、これが動作することを期待しますが、。
私は約束でそれを使用することに問題がありますが、音は正しいです。これまで私が持っていたもので質問を更新しました。ありがとう! – alecxe
別の回答として掲載されました。助けてくれてありがとう。 – alecxe