LoginSignup
1

posted at

Jasmine基本のキ

この記事の目的

Jasmineのテストコードを書くことになりましたが、コードの構造が理解できないため勉強中です。英語のドキュメントを翻訳しながら読んだので、自分なりにまとめておくことにしました。

Jasmineとは?

  • 同期および非同期のJavaScriptコードをテストできる、人気のJavaScriptユニットテストフレームワークの1つ
  • ビジネス価値に焦点を当てたBDD(行動駆動開発)プログラミングで使用されている

Suite

  • JavaScriptの動作をテストするために使用できるテストケースのグループ
  • 2つのパラメータを持つJasmineのグローバル関数describeへの呼び出しから始まる
  • 最初のパラメータはテストタイトルを表し、2番目のパラメータはテストスイートを実装する関数を表す
//This is test suite
describe("Test Suite", function() {
    //.....
});

Spec

  • Suite内のテストケースを表す
  • 2つのパラメータを持つJasmineのグローバル関数itの呼び出しから始まる
  • 最初のパラメータはスペックのタイトルを表し、2番目のパラメータは、テストケースを実装する関数を表す
  • specは1つ以上の期待値を含む
  • spec に合格するためには、spec 内の期待値がすべて真でなければならない。spec 内の 1 つ以上の期待値が false の場合、spec は失敗する
//This is test suite
describe("Test Suite", function() {
    it("test spec", function() {
      expect( expression ).toEqual(true);
    }); 
});

Describe Blocks

  • describe関数は関連するspecをグループ化するためのもの
  • stringパラメータはspecの集合に名前を付けるためのもの

Matchers

  • jasmineのテストの実際の出力と期待される出力を比較するために使用
  • toBe():実際の値が期待値と同じ型、同じ値であった場合にパス
  • toBeDefined():プロパティや値が定義されているか
  • toBeTruthy():プロパティや値が真であるか
  • toContain():文字列や配列に部分文字列や項目が含まれているかどうか
  • notを使うと、結果を反転させることができる
expect(actual).not.toBe(expected);
expect(actual).not.toBeDefined(expected);

Suites と Specsの無効化

  • describe の先頭に文字列 x を追加して xdescribe とする
  • 実行時にスキップされるため、その結果は表示されなくなる
xdescribe("MathUtils", function() {
  //code
});

describe("MathUtils", function() {
  //Spec for sum operation
  xit("should be able to calculate the sum of two numbers", function() {
    expect(10).toBeSumOf(7, 3);
  });
});

出典・引用

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
What you can do with signing up
1