2016-03-22 6 views
0

テスト外の特定のコードを値を返す必要がある関数に移動するのに問題があります。ここでnightwatch.jsテスト外の関数からの戻り値

は、テストファイル

function getCountOfTopics(browser){ 
 
    var count; 
 
    browser.getText('@sumTopics', 
 
     function(result){ 
 
      count = result.value; 
 
      console.log(result.value); 
 
     } 
 
    ); 
 
    return count; 
 
}; 
 

 
module.exports = {  
 
    
 
    'Create article' : function(browser){ 
 
     var noOfThreadsByInlineCode, noOfThreadsByFunction; 
 
     
 
     browser.getText('@sumTopics', 
 
      function(result){ 
 
       noOfThreadsByInlineCode = result.value; 
 
      } 
 
     ); 
 

 
     noOfThreadsByFunction = getCountOfTopics(browser); 
 

 
     browser.end(); 
 
    } 
 
}

さて、変数noOfThreadsByInlineCodeが実際にDOMの値を取得するための私のコードの一部ですが、変数noOfThreadsByFunctionは未定義です。コンソールは実際に正しい値を出力するので、関数はDOMから正しい値を取得します。

返された値を取得するために関数を更新するのに感謝します。

+0

browser.getTextの代わりにthis.getTextを試すことができますか? – anasarbescu

答えて

0

あなたは、コールバックの外側変数「カウント」を返し、それがwhy.Youはあなたが「の値」でやりたいん何このトピックHow to return value from an asynchronous callback function?

function getCountOfTopics(browser){ 
var count; 
browser.getText('@sumTopics', 
    function(result){ 
     count = result.value; 
     console.log(result.value); 
     /// result.value is available in this callback. 
    } 
); 

を見てみることができますか?

ps:custom_commandを覚えていないと思います。この問題は非常に役に立ちます。