308
15
章
SinonJS
equals(spy.getCall(0).args[0], message);
});
15.2
スタブとモック
SinonJS
にはスタブとモックという便利な仕組みも用意されています。これらはスパイの
API
にすべて対応しているほか、さらに追加の機能も備えています。
15.2.1
スタブ
スタブを使うと、既存のメソッドのふるまいを別のものに置き換えられます。例外の発生をシ
ミュレートしたい場合に便利です。また、依存先のコードがまだ存在しない場合にもしばしば使わ
れています。
ここで
Backbone.js
版
Todo
アプリケーションに戻り、テストを行ってみましょう。モデル
Todo
やコレクション
TodoList
などが含まれていますが、ここでは
TodoList
を隔離し、フェイクの
Todo
モデルを用意することにします。そして、モデルが追加された際のコレクションのふるまい
についてテストを行います。
スタブの使い方を示すために、モデルのコードはまだ作成されていないものとします。対象とす
るモデルへの参照だけを持つ、コレクションの骨組み部分は次のようになります。
var TodoList = Backbone.Collection.extend({
model: Todo
});
//
このコレクションのインスタンスは
this.todoList
であるとします
このコレクションは自分でモデルのインスタンスを生成するという前提で、モデルのコンストラ
クタのスタブを定義します。このために、以下のようにシンプルなスタブを生成します。 ...