2015-11-30 21 views
13

Sto configurando il mio framework karma amd mocha con grunt nel mio progetto. Quando sto eseguendo karma start, sto ricevendo un errore sotto menzionato.TypeError: expect (...). To.be non è una funzione

sto ottenendo questo errore nel mio console durante l'esecuzione dei comandi: Karma start

TypeError: expect(...).to.be is not a function 

mio Karma.confjs

// Karma configuration 
// Generated on Fri Nov 27 2015 11:48:47 GMT+0530 (India Standard Time) 

module.exports = function(config) { 
    config.set({ 

    // base path that will be used to resolve all patterns (eg. files, exclude) 
    basePath: '', 


    // frameworks to use 
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter 
    frameworks: ['mocha', 'chai'], 


    // list of files/patterns to load in the browser 
    files: [ 
     'bower_components/angular/angular.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     'app/*.js', 
     // 'test/specs/*.js', 
     'test/specs/array.js', 
     // 'test/specs/myCtlr-spec.js', 
     //'test/*.js' 
    ], 


    // list of files to exclude 
    exclude: [ 
    ], 


    // preprocess matching files before serving them to the browser 
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 
    preprocessors: { 
    }, 


    // test results reporter to use 
    // possible values: 'dots', 'progress' 
    // available reporters: https://npmjs.org/browse/keyword/karma-reporter 
    reporters: ['progress','coverage'], 

    preprocessors: { 
     'src/app/**/*.js': ['coverage'] 
    }, 
    coverageReporter: { 
     type: 'lcov', 
     dir: 'coverage/' 
    }, 

    // web server port 
    port: 9876, 


    // enable/disable colors in the output (reporters and logs) 
    colors: true, 


    // level of logging 
    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG 
    logLevel: config.LOG_INFO, 


    // enable/disable watching file and executing tests whenever any file changes 
    autoWatch: true, 


    // start these browsers 
    // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 
    // browsers: ['PhantomJS', 'Chrome'], 
    browsers: ['Chrome'], 


    // Continuous Integration mode 
    // if true, Karma captures browsers, runs the tests and exits 
    singleRun: false, 

    // Concurrency level 
    // how many browser should be started simultanous 
    concurrency: Infinity 
    }) 
} 

mio array.js prova

// var expect = require('chai').expect; 

describe("Mocha: The 'toBe' matcher compares with ===", function() { 
    it("and has a positive case", function() { 
    expect(true).to.be(true); 
    }); 

    it("and can have a negative case", function() { 
    expect(false).not.to.be(true); 
    }); 
}); 

enter image description here

Si prega di suggerire cosa mi manca.

risposta

21

È necessario scrivere expect(true).to.be.equal(true) l'essere è una catena (oggetto) non una funzione. Oppure si potrebbe scrivere:

expect(true).to.be.true; 
expect(false).to.be.false; 
+0

Hey questo funziona ... Ma si può dirmi qual è la differenza in entrambe .. –

+2

Questo .to.be aspettarsi (myController.message) ("Ciao"); non funzionava, ma questo è in funzione (myController.message) .to.be.equal ("Hello"); –

+1

l'essere è un oggetto che influenza il significato dei test. Pertanto non è possibile chiamarlo come se fosse una funzione, ma è necessario accedere alle sue proprietà o metodi. http://chaijs.com/api/bdd/ – Raulucco

Problemi correlati