LoginSignup
0
1

More than 1 year has passed since last update.

Jasmine基本のキ

Posted at

この記事の目的

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);
  });
});

出典・引用

0
1
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
0
1