BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Microsoft Fakes Deep Dive – Shims

Microsoft Fakes Deep Dive – Shims

ブックマーク

原文(投稿日:2012/05/22)へのリンク

Shimsは、フレームワークのメソッドを含めたテストの一部としてメソッドの割り込みを行うことができるMicrosoft Fakes frameworkの一部である。これにより、侵入度の低いユニットテストを可能にすることがRich Czyzewski氏の記事“ASP.NET MVC4における非侵襲的ユニットテスト – Microsoft Fakes Deep Dive”において紹介されている。

非侵襲的ユニットテストとはなんなのだろう?Rich氏はFormsAuthentication.SignOut()を呼び出す簡単なサンプルを紹介している。FormsAuthenticationは、テスト実行時には初期化されていないHttpContextに依存しているため、これまでは分離クラスでラップされたオブジェクトを呼び出してユニットテストを実行する必要があった。テストを行うだけのために設計を変更することは煩わしい。

Shimsは別の言い方をすると、テストを容易にするためだけにラップしたクラスを作るのではなく、FormsAuthentication.SignOut()に割り込むことができる。

新しいMicrosoft Fakes Frameworkにおいて、Shim Typesは、割り込みに使うことができ、すべての種類のメソッド呼び出しを置き換えることができる -

  • 静的メソッド
  • インスタンスメソッド(すべてのインスタンスまたは、一部のインスタンス)
  • 通常または、静的コンストラクタ

Shimsはまた、インターフェイスにフェイククラスをバインドすることもできる。

Fakes FrameworkはNUnitを含むユニットテストフレームワークで利用することができる。 Rich氏はまた、非常に近い機能を持つVS 2010のMolesテクノロジとVS 11で提供されるFakesとの比較を紹介している。

この記事に星をつける

おすすめ度
スタイル

BT