Power AssertとMochaのAssertを比較してみた

AWS Summitにて、power-assertなるライブラリの存在を知ったのでとりあえず試してみました。 AWS Summitでのt_wadaさんのスライド やっていきましょう それでははじめていきましょう。 $ n […]

広告ここから
広告ここまで

目次

    AWS Summitにて、power-assertなるライブラリの存在を知ったのでとりあえず試してみました。

    AWS Summitでのt_wadaさんのスライド

    やっていきましょう

    それでははじめていきましょう。

    $ npm init -y
    

    Mocha + Power Assertのテスト環境を準備する

    Qiitaに良い記事がありますので、それを参考にセットアップしていきます。
    mocha + power-assert環境の構築 – Qiita

    テストを実行する

    mochaをグローバルインストールしている場合、./node_modules/mocha/bin/mochaを実行しましょう。

    $ ./node_modules/mocha/bin/mocha  test/ --require intelli-espower-loader
    

    ChaiのAssertと比較する

    使うだけだと参考記事を見るだけで良くなっちゃうので、ChaiのAssertとの比較をしてみました。

    ChaiのAsset

    const assert = require('chai').assert
    
    const  author = "hoo";
    it ("is chai assert(failed)", function() {
        assert(author === 'hoge');
    });
    it ("is chai assert(succeeded)", function() {
        assert(author === 'hoo');
    });
    

    これを実行すると、このように表示されます。

    $ ./node_modules/mocha/bin/mocha  tests/chai.js
    
    
      1) is chai assert(failed)
      ✓ is chai assert(succeeded)
    
      1 passing (14ms)
      1 failing
    
      1)  is chai assert(failed):
         AssertionError: Unspecified AssertionError
          at Context.<anonymous> (tests/chai.js:6:5)
    

    第二引数を特に指定していないこともありますが、かなりシンプルな表示です。

    Power AssertのAssert

    requireするものを変えているだけですね。

    const assert = require("power-assert");
    
    const author = "hoo";
    it ("is power-assert(failed)", function() {
        assert(author === 'hoge');
    });
    
    it ("is power-assert(succeeded)", function() {
        assert(author === 'hoo')
    });
    

    それではPower Assetでやってみましょう。

    $ ./node_modules/mocha/bin/mocha  tests/assert.js --require intelli-espower-loader
    
    
      1) is power-assert(failed)
      ✓ is power-assert(succeeded)
    
      1 passing (12ms)
      1 failing
    
      1)  is power-assert(failed):
    
          AssertionError: false == true
          + expected - actual
    
          -false
          +true
    
          at Decorator._callFunc (node_modules/empower-core/lib/decorator.js:110:20)
          at Decorator.concreteAssert (node_modules/empower-core/lib/decorator.js:103:17)
          at decoratedAssert (node_modules/empower-core/lib/decorate.js:51:30)
          at powerAssert (node_modules/empower-core/index.js:63:32)
          at Context.<anonymous> (tests/test.js:5:5)
    
    

    かなり情報量が増えました。
    ChaiでAssertしている箇所はrequire部分を書き換えるだけでそのまま行けそうな気がします。

    完全にやってみた記事ですが、テスト書く習慣をつけていかないとなので引き続きいろいろ試してきます。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark