LoginSignup
18

More than 5 years have passed since last update.

【JavaScript】power-assert使ってみた

Posted at

詳しくはこちら
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とは一致せずに失敗していることが分かります.

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18