Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

0

Share

Download to read offline

後期講座07

Download to read offline

Mocha と Chai を使った Node.js でのテストの書き方。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to like this

後期講座07

  1. 1. 電算部ネットワーク講座 07 Node.js Ⅵ
  2. 2. 目次  テストとは  品質の高いコードを書くために  テストフレームワーク  アサーションライブラリ  テストの書き方  テストの実行  mocha の便利な機能  非同期テスト  課題
  3. 3. テストとは  テストという言葉に、嫌なイメージを持っている方もいるかもしれません。  ですが、ここで言うテストはその類のテストとは違います。  今回扱うのは、プログラムが仕様を満たしているかどうか、検証するためのテ ストです。
  4. 4. 品質の高いコードを書くために  品質の高いコードを書くためには、バグが極力無いことが望ましいです。  完全に無くすことは、人間が完全でない以上無理ですが、テストコードを書く ことによって、仕様を満たした品質の高いコードを書くことを可能にします。  テストコードを書くと、仕様を満たしているか自動的に判定することができま す。
  5. 5. テストフレームワーク  前々回、 Web Application Framework を扱いましたが、テストを書くためのフ レームワークも存在します。  今回は mocha という、ブラウザでも Node.js でも使えるテストフレームワー クを用います。  適当な場所に移動して作業ディレクトリを作成します。  mkdir test  package.json ファイルを生成します。  npm init  テストフレームワーク mocha をインストールします。  npm install mocha --save
  6. 6. アサーションライブラリ  テストには、フレームワークの他に Assertion Library を使います。  この変数の値はこうあるべき、という形式で個々に条件を指定します。  今回は、様々な表記の形式が選べる Chai というライブラリを用いて説明しま す。  早速、 npm からインストールしましょう。  npm install chai –-save
  7. 7. テストの書き方  例: 引数 n を渡すと、n! (nの階乗) を返す関数 factorial をテストします。 function factorial(n) { if (typeof n !== "number") throw new TypeError("n must be a natural number"); if (n < 0) throw new RangeError("n must be a natural number"); if (n <= 1) return 1; return n * arguments.callee(n - 1); }
  8. 8. テストの書き方 // chai を読み込む var expect = require("chai").expect; describe("テスト対象の名称", function () { it("テスト項目", function () { // テスト対象を実行 var res = factorial(0); // 期待する結果を定義 (例: 結果は 1 である) expect(res).to.be.equal(1); }); }); テストケース
  9. 9. テストの実行  ※ package.json の “scripts”: {“test”: “mocha”} を指定した後に  npm test  mocha を global インストールしてある場合  mocha
  10. 10. mocha の便利な機能  before(function () { // ここに、テストケースを実行する前に行う、前処理を記述する });  after(function () { // ここに、テストケースを実行した後に行う、後処理を記述する });  it.only 特定のテストケースだけを実行 (その他のテストケースは実行されない)  it.skip OR it(引数なし) テストケースを pending する (一時的に保留する)
  11. 11. 非同期テスト  データベースやネットワークを利用するコードのテストを書きたい場合に必要 になります。 it("user model", function (done) { User.find(id, function (err, user) { expect(user).to.be.an("object"); // 最後に呼ぶ done(); }); });
  12. 12. 課題  前回の続きで、 express で使うモデルに対して、そのテストを書いてみましょ う。

Mocha と Chai を使った Node.js でのテストの書き方。

Views

Total views

543

On Slideshare

0

From embeds

0

Number of embeds

7

Actions

Downloads

6

Shares

0

Comments

0

Likes

0

×