2017-05-22 39 views
0

剛開始使用摩卡作爲測試套件,並在幾年未使用後重新加速JavaScript,所以這可能是也可能不是一個愚蠢的問題一個明顯的答案。只是測試一些東西,看看有什麼作用。摩卡在測試中提供「不是功能響應」

我在一個名爲index.js的文件中有一個計算函數的小文件,它是摩卡被設置爲跳出的文件。

function add(numA, numB) { 
    return parseFloat(numA) + parseFloat(numB); 
} 

function subtract(numA, numB) { 
    return parseFloat(numA) - parseFloat(numB); 
} 

function divide(numA, numB) { 
    return parseFloat(numA)/parseFloat(numB); 
} 

function multiply(numA, numB) { 
    return parseFloat(numA) * parseFloat(numB); 
} 

function modulo(numA, numB) { 
    return parseFloat(numA) % parseFloat(numB); 
} 

試圖保持它儘可能簡單,同時允許一些變化和測試室。無論如何,我然後試圖爲它編寫一組測試用例,簡單的只是摩卡測試用例,沒有特殊的斷言模塊或任何東西,純粹簡單的摩卡和JavaScript。

describe("index", function() { 
    var assert = require("assert"); 
    var x = 12; 
    var y = 34; 
    var index = require('../app/index'); 

    beforeEach(function() { 
     x++;   
     y--; 
     console.log(" x = " + x + "; y = " + y); 
    }); 
    describe("index", function() { 
     describe("Addition", function() { 
      it("should add numbers", function() { 
       assert.equal(x + y, index.add(x, y)); 
      }); 
     }); 
     describe("Subtraction", function() { 
      it("should subtract numbers", function() { 
       assert.equal(x - y, index.subtract(x, y)); 
      }); 
     }); 
     describe("Division", function() { 
      it("should divide numbers", function() { 
       assert.equal(x/y, index.divide(x, y)); 
      }); 
     }); 
     describe("Multiplication", function() { 
      it("should multiply numbers", function() { 
       assert.equal(x * y, index.multiply(x, y)); 
      }); 
     }); 
     describe("Modulus", function() { 
      it("should modulo numbers", function() { 
       assert.equal(x % y, index.modulo(x, y)); 
      }); 
     }); 
    }); 
}); 

基本上只是寫這些,看看我是否能得到摩卡在我認爲這應該是工作的方式工作,因爲例子我看到是有意義的。然而,當我運行這段代碼時,它最終無法工作,原因是我嘗試調用index的任何函數失敗,index.add,index.subtract等等,具體是因爲TypeError:index。[function_name]不是一個功能。

從我讀過並在其他人的代碼中看到,這應該是工作。我的文件夾設置爲使得我測試的文件位於\ lscmocha \ app中,這些測試所包含的測試文件位於\ lscmocha \ test中。任何幫助將不勝感激,對不起,如果這是一個明顯的答案或重複的問題,我看了一會兒,找不到任何東西。

+0

您的index.js文件是否導出所有這些功能? –

+0

我必須跳過它告訴我導出函數的部分。我出口他們,它的工作,非常感謝! – tseaver

回答

1

蘇尼爾D.問我是否導出了我的功能,我沒有。必須跳過告訴我的部分。如果您遇到與我一樣的麻煩,請確保您的函數在您的主JavaScript腳本文件中導出。