[英]Mocha delivering “not a function response” in testing
剛開始使用mocha作為測試套件,並且在不使用幾年后又恢復使用javascript的速度,因此這可能是一個愚蠢的問題,而且可能沒有明顯的答案。 只是測試一下,看看有什么用。
我在一個名為index.js的文件中有一個小的計算函數文件,該文件是mocha設置為可跳轉。
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);
}
嘗試使其盡可能簡單,同時允許一些變化和測試空間。 無論如何,然后我嘗試為其編寫一組測試用例,也就是簡單的mocha測試用例,沒有特殊的assert模塊或任何東西,純粹是簡單的mocha和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.add,index.subtract等,尤其是由於TypeError:index。[function_name]不是功能。
從我在別人的代碼中閱讀和看到的內容來看,這應該可以工作。 我的文件夾已設置為要測試的文件位於\\ lscmocha \\ app中,而包含這些測試的測試文件位於\\ lscmocha \\ test中。 任何幫助將不勝感激,很抱歉,如果它是一個明顯的答案或重復的問題,我找了一會兒,找不到任何東西。
Sunil D.問我是否導出了函數,但沒有。 一定已經跳過了告訴我的部分。 如果您遇到與我同樣的麻煩,只需確保將函數導出到主要的JavaScript腳本文件中即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.