2016-02-16 23 views
-1

隨着安裝和摩卡測試的Node.js,測誤差

我有兩個文件,numbers.js和test.js在同一目錄

繼頂端回答:What is the purpose of Node.js module.exports and how do you use it?

numbers.js

var myFunc = function myFunc() { 
     return 10; 
}; 

exports.myFunc = myFunc; 

test.js

var assert = require('assert'); 
var numbers = require('./numbers'); 

describe('numbers', function() { 
    it('first function returns 10', function() { 
      var result = numbers.myFunc; 
      assert.equal(result, 10); 
    }); 
}); 

但運行$ mocha,當它返回錯誤:

AssertionError: [Function: myFunc] == 10 

我在做什麼錯?

回答

2

您需要致電myFunc函數。添加括號

describe('numbers', function() { 
    it('first function returns 10', function() { 
        var result = numbers.myFunc(); <<<<<< 

         assert.equal(result, 10); 
         }); 
}); 
+0

我沒有嘗試,但它確實讓我更進一步!然而,我得到一個新的斷言錯誤 它說'AssertionError:undefined == 1' – Jimmie

+0

我看到,我已經刪除()後更改myfunc myFunc並導致另一個問題。 – Jimmie

-1

首先,檢查你的模塊所需的正確與否。

var numbers = require('../numbers'); // Check path of file numbers.js 

如果是,請寫:

var result = numbers.myFunc(); // your module exports 'myFunc' property not 'myfunc' 
assert.equal(result, 10); // your function return '10' instead of '1' 
+0

我更新了代碼,現在我把numbers.js和test.js放在同一個地方,所以我認爲它的正確要求,我也修復了numbers.myFunc。這有助於我進一步,但一個新問題。摩卡給出錯誤'AssertionError:[Function:myFunc] == 10' – Jimmie

+0

是的,這是我的錯誤,我忘了在myFunc.Basically之後添加'()',因此您需要調用它。 –