Microsoft Fakes Frameworkについて
2015/12課会資料
Microsoft Fakes Frameworkについて
Visual Studio 2012から単体テスト用にMicrosoft Fakes Framework(以下MS Fakes)が追加されました。
MS Fakesとは簡単にいうと、.Net Frameworkのバイナリレベルのスタブ作成フレームワークになります。
例:
Using s = Microsoft.QualityTools.Testing.Fakes.ShimsContext.Create()
System.Fakes.ShimDateTime.NowGet = Function() New DateTime(2000, 1, 1)
' ここからDateTime.Nowを呼ぶと上記の関数が呼ばれ、常に2000/1/1が返る
End Using
バイナリレベルで埋め込まれるため、上記Usingの間では他のライブラリの内部で利用していても、すべてDateTime.Nowの呼び出しは、2000/1/1になります。
ちょっと工夫をすることにより、例えばサーバとの連携(REST APIやDBなど)も全てMS Fakesで置き換え任意のコードが実行できるため、今まで単体テストが不可能(もしくはサーバの状態により安定しない)だったものが安定して単体テストできるようになります。
デメリット
・VisualStudioのエディションが全部入り(2015ではEnterprize)でないと利用できない。(communication, professionalなどにはない)
・ビルドの時間が掛かるようになる。
・情報が少ない。