2015-11-30 23 views
13

Tôi đang định cấu hình khuôn khổ Karma amd mocha của tôi với grunt trong dự án của tôi. Khi tôi bắt đầu nghiệp, tôi nhận được lỗi được đề cập dưới đây.TypeError: expect (...). To.be không phải là chức năng

Tôi nhận được lỗi này trong giao diện điều khiển của tôi trong khi chạy lệnh: 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 
    }) 
} 

My thử nghiệm 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

Vui lòng đề xuất những gì tôi bị thiếu.

Trả lời

21

Bạn cần viết expect(true).to.be.equal(true) là một chuỗi (đối tượng) không phải là hàm. Hoặc bạn có thể viết:

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

Hey làm việc này ... Nhưng bạn có thể xin vui lòng cho tôi biết sự khác biệt trong cả hai là những gì .. –

+2

.to.be này mong đợi (myController.message) ("Hello"); đã không làm việc nhưng đây là mong đợi làm việc (myController.message) .to.be.equal ("Hello"); –

+1

được là một đối tượng có ảnh hưởng đến ý nghĩa của các bài kiểm tra. Do đó bạn không thể gọi nó như là một hàm nhưng bạn cần truy cập các thuộc tính hoặc phương thức của nó. http://chaijs.com/api/bdd/ – Raulucco

Các vấn đề liên quan