2016-11-24 47 views
0

在我的摩卡測試中,我有這樣的事情使用.done()進行的摩卡測試有什麼問題?

it.only("diag", function(done) { 
     let data = null; 
     app.client.timeoutsAsyncScript(5000).executeAsync(function(data, done) { 
      console.log("START"); 
      done(); 
     }); 
    }); 

在我的應用程序可以看到的console.log已經完成。但是這個函數.done()從來沒有被調用過。爲什麼?什麼可能是錯的?

感謝您的幫助!

+0

您有一個範圍命名問題。查看[本頁](https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20%26%20closures/ch2.md)以獲取更多關於變量如何工作的信息在範圍內。 – MarcoL

回答

1

您的回調函數中有參數「done」。本地作用域的變量將用於來自外部作用域的變量。您可以將其刪除或重命名executeAsync(function(data, done2) { ...