簡単な 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 プロパティ) を定義していません。どうすればこれを修正できますか?