LoginSignup
8
5

More than 5 years have passed since last update.

mochaとは?

Last updated at Posted at 2016-04-29

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

スクリーンショット 2016-04-30 1.57.12.png

成功時は問題なかった。assertionが正しくない時に失敗することも確認する。
前述のsample.htmlのassertの箇所を以下に変更

 assert.equal("4",testfunc(3),'引数を3');

スクリーンショット 2016-04-30 2.01.27.png

失敗することが確認できた。

8
5
0

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
8
5