Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript nodejs mocha套件未定义错误_Javascript_Node.js_Tdd_Mocha.js - Fatal编程技术网

Javascript nodejs mocha套件未定义错误

Javascript nodejs mocha套件未定义错误,javascript,node.js,tdd,mocha.js,Javascript,Node.js,Tdd,Mocha.js,我试图运行一些测试使用摩卡,但似乎无法克服这个错误 E:\tdd\nodejs\cart>mocha cart.test.js node.js:201 throw e; // process.nextTick error, or 'err ^ ReferenceError: suite is not defined at Object.<anonymous> (E:\tdd\nodejs\cart\cart.test.js:

我试图运行一些测试使用摩卡,但似乎无法克服这个错误

E:\tdd\nodejs\cart>mocha cart.test.js

node.js:201
        throw e; // process.nextTick error, or 'err
              ^
ReferenceError: suite is not defined
    at Object.<anonymous> (E:\tdd\nodejs\cart\cart.test.js:5:1
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Module.require (module.js:357:17)
    at require (module.js:368:17)
    at C:\Users\lex\AppData\Roaming\npm\node_module
    at Array.forEach (native)
    at load (C:\Users\lex\AppData\Roaming\npm\node_
9)
    at Object.<anonymous> (C:\Users\lex\AppData\Roa
in\_mocha:237:1)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)
    at EventEmitter._tickCallback (node.js:192:40)
cart.test.js

var GetTotalSum = function (input) {
    var total = 0,
        differentTitles = 0,
        discountMap = [0, 1, 0.95, 0.9, 0.8, 0.75],
        BOOK_PRICE = 8;

    for (var i in input) {
        total += input[i] * BOOK_PRICE;
        if (input[i] > 0) {
            differentTitles++;
        }
    }

    if (differentTitles > 1) {
        total = total * discountMap[differentTitles];
    }

    return total;
}


module.exports.GetTotalSum = GetTotalSum;
var assert = require('assert'),
    cart = require('./cart.js');


suite('cart', function () {
    test('buy one book', function () {
        // Arrange
        var input = [1, 0, 0, 0, 0],
            expected = 8;

        // Act
        var actual = cart.GetTotalSum(input);

        // Assert
        assert.equal(actual, expected);     
    });
});

您需要告诉Mocha使用TDD接口,而不是默认的BDD接口:

mocha --ui tdd card.test.js

您还可以在项目中包含Makefile并指定TDD,如下所示:

test:
    @./node_modules/.bin/mocha -u tdd

.PHONY: test

帽子提示:

您也可以通过在package.json中指定mocha-u tdd来实现


谢谢很好。有没有办法将tdd接口指定为默认接口?您将如何动态地这样做?我在每次保存时都会运行测试,它是通过gulp设置的。我正在运行BDD和TDD测试
"scripts": {
"start" : "node server",      
"test": "mocha -u tdd" 
 }