Estoy tratando de ejecutar algunas pruebas usando mocha pero no puedo parecen conseguir a través de este error.

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)

De lo que puedo decir de la pila de llamadas, el problema es que aquí cart.test.js:5:1.
Alguna idea de lo que está causando esto ?

Gracias

cart.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;

cart.test.js

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);     
    });
});
InformationsquelleAutor thedev | 2012-03-20

3 Comentarios

  1. 58

    Necesita decirle a Moca para utilizar el TDD interfaz, en lugar de la predeterminada BDD uno:

    mocha --ui tdd card.test.js
    • gracias. funciona bien. Cualquier forma de especificar el tdd interfaz como predeterminado ?
    • El uso de un mocha.opts archivo, consulte visionmedia.github.com/mocha para obtener más detalles.
    • ¿cómo lo harían de forma dinámica? Tengo mis pruebas en cada ahorrar, es la instalación de esa manera a través de trago. Estoy corriendo tanto BDD y TDD pruebas
  2. 3

    También puede incluir un archivo Makefile en el proyecto y especificar TDD así:

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

    Sombrero de punta: DailyJS

  3. 3

    Usted puede hacer lo mismo con sólo especificar mocha -u tdd en el paquete.json

    "scripts": {
    "start" : "node server",      
    "test": "mocha -u tdd" 
     }

Dejar respuesta

Please enter your comment!
Please enter your name here