3

まず第一に、E2E テストなどの実装が困難な問題のためにこのようなライブラリを考え出した Protractor チームとコミュニティに敬意を表します。

ElementFinderをさらに検査するための追加のユーティリティメソッドを追加したかったので、ElementFinderの周りにラッパーJSクラスがあります。そのようなクラス オブジェクトのインスタンスを返すときは、次のように返します。

function myFunc(){
   var myElement = element(by.binding('plan.name'));
   var deferred = protractor.promise.defer();
   var myWrapper = new myElementWrapper(myElement);
   deferred.fulfill(myWrapper);
   return deferred.promise;
}

後で、次を使用して Jasmine 2.1 の値を期待します。

var val=myFunc();
expect(val).not.toBeNull();

分度器の女王@juliemrによる公式文書によると、は約束が解決されるまで待つことになっています。止まることなく、そよ風が通り過ぎていくようです。コードが生成した promise のインスタンスを見ると、タイプが. 分度器のコードでは、次を使用していることに気付きました。私はまた、呼び出しを成功せずにラップしようとしましたが、テストが読みにくくなるため、一連の連鎖呼び出しの使用を避けたいと考えています。expectgoog.scope.promise.Promisewebdriver.promise.isPromise(res)flow.execute.then

テストフローに進む前に、上記の約束を解決するのを適切に待ちますか?

そうでない場合、Protractor のフレーバーによって適切に検査される promise オブジェクトを作成する適切な方法は何expectですか?

新しくてピカピカの分度器 2.0 リリースを使用して実行しています。

4

1 に答える 1