2015-11-30 15 views
13

Konfiguruję ramkę Karma amd mocha z pomrukiem w moim projekcie. Kiedy uruchamiam początek karmy, dostaję poniżej wspomniany błąd.TypeError: expect (...). To.be nie jest funkcją

otrzymuję ten błąd w moim konsoli podczas uruchamiania polecenia: Karma start

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

My 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 
    }) 
} 

Moje testy array.js

// 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

Proszę zasugerować, czego mi brakuje.

Odpowiedz

21

Musisz napisać expect(true).to.be.equal(true) be to łańcuch (obiekt), nie funkcja. Lub można napisać:

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

Hey to działa ... Ale możesz mi powiedzieć, co jest różnica w obu .. –

+2

ten oczekiwać (myController.message) .to.be („Hello”); nie działa, ale działa oczekiwanie (myController.message) .to.be.equal ("Hello"); –

+1

be jest obiektem, który wpływa na znaczenie testów. Dlatego nie możesz tego nazwać, ponieważ była to funkcja, ale musisz uzyskać dostęp do jej właściwości lub metod. http://chaijs.com/api/bdd/ – Raulucco