ちょっと古い話ですが、3/22にC#ユーザー会でVisual Studio 11をネタにしていろいろディスカッションしました。
第76回codeseek勉強会&第16回日本C#ユーザー会 勉強会 - 日本 C# ユーザー会
Fakes Frameworkについてid:neueccさんがデモってくれたのですが、その時「FakeとStubって何が違うの?」という質問が出ました。みんなイメージは多分共通していたと思います。しかし言語化できませんでした。たまたま今読んでいる本にFake/Mock/Stubの違いについても書いていましたのでちょっと引用します。
- Stub: Prevent the dependency from obstructing the method-under-test and torespond in a way that helps it proceed through its logical steps.
- Mock: Allow the test code to verify that the code-under-test’s interaction with the dependency is proper, valid, and expected.
読んでる本。
- 作者: Stephen D. Ritchie
- 出版社/メーカー: Apress
- 発売日: 2011/12/07
- メディア: ペーパーバック
- クリック: 1回
- この商品を含むブログを見る
The Art of Unit Testing: With Examples in .net
- 作者: Roy Osherove
- 出版社/メーカー: Manning Pubns Co
- 発売日: 2009/06/28
- メディア: ペーパーバック
- 購入: 4人 クリック: 41回
- この商品を含むブログ (9件) を見る
種類 | 説明 |
---|---|
Stub | 主にメソッドの処理の流れのチェックを行う際に使用する。オブジェクトインスタンスとは直接関係ない。テストに依存するから独立してメソッドのテストする |
Mock | テスト対象のメソッドが相互に動作するための環境を提供する。インスタンスはテスト用に生成された専用の環境の中で動作する |
Fake | 「偽物」という訳があるように、同じ機能を持つ別物に差し替える。StubとMock両方の性質を持つ。 |
つまりVisual Studio 11のFakes Frameworkは.NET Frameworkの偽物だから、差し替えて従来のStubではテストが難しかった、システム情報に依存する代表格の日付やプリンタ情報などに依存するテストがやりやすいものということなんでしょうね。