mochaとは?
- JSのテスティングフレームワークの1つ。
アサーションの機能は用意されていない。 - ブラウザとNode.jsどちらでも実行できる。
テスティングフレームワークとは?
テストの実行プログラムの作成、テスト結果の判定、集計などの機能を提供するもの。
アサーションとは?
プログラムの前提として満たされるべき条件を記述し、実行時にそれが満せてない場合にエラーや例外を発生させる機能。
上記に記述した通りmochaはアサーションの機能はないため、今回はアサーションライブラリとしてchai.jsを使用する。
install
mochaのinstall
https://github.com/mochajs/mocha
に一通りファイルがある。
今回はpackage.jsonをローカル環境にコピペして
npm install
でinstallした。
chaiのインストール
npm install chai
### テスト
今回はブラウザでテスト結果を確認する。
以下のようなテストを書いた。
sample.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="node_modules/should/node_modules/should-format/tests/browser/mocha.css" />
<title>テスト</title>
<script type="text/javascript" src="node_modules/chai/chai.js"></script>
<script type="text/javascript" src="node_modules/should/node_modules/should-format/tests/browser/mocha.js"></script>
<script type="text/javascript">
//TDD
mocha.setup('tdd');
// 各アサーションモジュールの読込み
// assertの機能を読み込み
var assert = chai.assert;
// テスト対象のメソッド
var testfunc = function(n) {
return n;
}
suite('メソッドのテスト', function(){
suite('testfunc()のテスト', function(){
test('そのままreturnすることを確認',function() {
assert.equal("3",testfunc(3),'引数を3');
});
});
});
</script>
</head>
<body>
<div id="mocha"></div>
</body>
<script type="text/javascript">
mocha.run();
</script>
</html>
ブラウザで確認
open sample.html
成功時は問題なかった。assertionが正しくない時に失敗することも確認する。
前述のsample.htmlのassertの箇所を以下に変更
assert.equal("4",testfunc(3),'引数を3');
失敗することが確認できた。