1

簡単な Mocha テストを作成しました。ノードの「アサート」モジュールを使用すると、完全に機能します。コマンド ラインから実行します (Mocha はグローバル ノード モジュールとしてインストールされます)。

$ mocha myTest.js

․

1 test complete (6 ms)

スクリプトは次のようになります。

var assert = require("assert")
describe('Array', function(){
    describe('#indexOf()', function(){
        it('should return -1 when the value is not present', function(){
            assert.equal(-1, [1,2,3].indexOf(5));
            assert.equal(-1, [1,2,3].indexOf(0));
        })
    })
})

さて、アサート ライブラリの代わりに Chai を追加してみました。最初にインストールしました:

npm install chai

したがって、ディレクトリ node_modules が私のプロジェクトに作成されました。これまでのところ素晴らしい。次に、Chai を使用するようにスクリプトを変更しました。

var chai = require("chai");

describe('Array', function(){
    describe('#indexOf()', function(){
        it('should return -1 when the value is not present', function(){
            [1,2,3].indexOf(5).should.equal(-1);
            expect([1,2,3].indexOf(5)).to.equal(-1);
            assert.equal([1,2,3].indexOf(5),-1);
        })
    })
});

Mocha テストは TypeError で失敗します:

TypeError: Cannot call method 'equal' of undefined

Chai は should を定義していないと思いますので未定義です。

これはどのように可能ですか?

Chai でテストを実行するにはどうすればよいですか? Chai をグローバルにインストールしようとしましたが、効果がありませんでした。私もスクリプトを実行しましたが-r chai、効果はありませんでした。

どうやら Chai モジュールはロードされていますが、変数 (Object.prototype プロパティ) を定義していません。どうすればこれを修正できますか?

4

1 に答える 1