2017-10-26 8 views
0

私は次のコードを書いています。何が起こったのかというと、約束が解決されると、ブラウザはnightwatch.conf.jsで定義されているデフォルトページに留まるURLにナビゲートしません。したがって、テストは失敗します。NightwatchがURLにナビゲートしていない

Given(/^I make a post request and retreive the Id i got the page + id$/,() => { 
     //I make the post request 
     var transactionIdPromise = utils.getTransactionId(1); 

     return transactionIdPromise.getBody('utf8').then(JSON.parse).done(function (result) { 
      var id = result.transaction_id; 
      var url = "https://mywebpage.com:8443/" + id; 
      client.url(url) 
     }); 
    }); 

答えて

0

約束を正しく結びつける必要があります。 client.urlは非同期操作であるため、約束を返しています。あなたはCucumber.jsランナーが次のステップに進む前に解決するべき約束のチェーン全体を待つようにそれを返さなければなりません。

Given(/^I make a post request and retreive the Id i got the page + id$/,() => { 
     //I make the post request 
     var transactionIdPromise = utils.getTransactionId(1); 

     return transactionIdPromise.getBody('utf8').then(JSON.parse).then((result) => { 
      var id = result.transaction_id; 
      var url = "https://mywebpage.com:8443/" + id; 
      return client.url(url) 
     }); 
    }); 
+0

こんにちはmucsi96私はあなたが言ったように約束を連鎖しようとしましたが、約束が解決されていないので、次のステップに進みます。 – elcharrua

+0

問題を再現するために、最小限の例でGitHubに関する問題を提出してください。ベースとして、https://github.com/mucsi96/nightwatch-cucumber-exampleを使用できます – mucsi96

0

私の解決策は、これがなぜうまくいかなかったのかまだ分かっていなくても、約束通りに変更されました。

関連する問題