詳しくはこちら
power-assert使ってみた - 東京Node学園 10時限目に参加してきました
power-assertの準備
npm install
プロジェクトのルートディレクトリにすでにpackage.jsonがあるとします.このとき,プロジェクトのルートディレクトリで以下のコマンドを実行します.
$ npm install power-assert grunt-espower --save-dev
すると,package.jsonは以下のように追記されるはずです.
"devDependencies": {
"power-assert": "~0.1.2",
"grunt": "~0.4.1",
"grunt-espower": "~0.1.2"
}
Gruntfile.jsの準備
gruntのtaskによってpower-assert用のファイルを生成するため,Gruntfile.jsを以下のように記述します.
module.exports = function(grunt) {
var pkg = grunt.file.readJSON('package.json')
, taskName
;
grunt.initConfig({
espower: {
test: {
files: [
{
expand: true, //Enable dynamic expansion,
cwd: 'test/', //Src matches are relative to this path
src: ['**/*.js'], //Actual pattern(s) to match
dest: 'espowered/', //Destination path prefix
ext: '.js' //Dest filepaths will have this extension
}
]
}
}
});
for (taskName in pkg.devDependencies) {
if (taskName.substr(0, 6) == 'grunt-') {
grunt.loadNpmTasks(taskName);
}
}
};
これによって,testディレクトリ以下のテストファイルを基にしてespoweredディレクトリにpower-assert用のテストファイルが作成されるように設定できます.
テストを書く
以下のテストコードをtestディレクトリにpower_assert_example-test.jsという名前で保存します.
var assert = require('power-assert');
describe('Array', function(){
beforeEach(function(){
this.ary = [1, 2, 3];
});
describe('#indexOf()', function(){
it('should return index when the value is present', function(){
var zero = 0, two = 2;
assert(this.ary.indexOf(zero) === two);
})
})
});
以上で準備は完了です.
テストファイル生成と実行
gruntタスクを走らせてテストコードを生成します.
$ grunt espower:test
Running "espower:test" (espower) task
Done, without errors.
上記のように表示されればタスク実行が正常に完了しています.
テストを走らせてみます.
$ mocha espowered/power_assert_example-test.js
․
0 passing (6 ms)
1 failing
1) Array #indexOf() should return index when the value is present:
AssertionError: # (プロジェクトのルートディレクトリ)/test/power_assert_example-test.js:10
assert(this.ary.indexOf(zero) === two);
| | | | |
| | | | 2
| -1 0 false
[1,2,3]
(以下略)
assertの中身の情報が出力されていて,[1, 2, 3]というaryで呼び出したindexOfというメソッドの結果が-1になっていて右辺の2とは一致せずに失敗していることが分かります.