剛開始使用摩卡作爲測試套件,並在幾年未使用後重新加速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中。任何幫助將不勝感激,對不起,如果這是一個明顯的答案或重複的問題,我看了一會兒,找不到任何東西。
您的index.js文件是否導出所有這些功能? –
我必須跳過它告訴我導出函數的部分。我出口他們,它的工作,非常感謝! – tseaver