FriendlyはWIndowsアプリケーション向けの結合テスト作成用のライブラリです。
砕けていうなWIndowsアプリケーションをAPI化してテストが可能というツール。
API化前提なのでテストに留まらずソースコードに直接手が出せないツールなども利用可能だ。
ソースコードとチュートリアル諸々が製作者様のホームページにて
公開されているので興味ある方はご覧ください。
http://www.codeer.co.jp/AutoTest
Friendlyの破壊力は凄まじいものがあるが、
導入効果としてはやはりテスト意識の向上に着目したい。
特にMVVMモデルのアプリケーションに対してだ。
各層をライブラリ単位(.csproj/.dll)で分けてしまえば
Model及びViewModelはFriendlyでテストを行うという切り分けが安易に可能だ。
MVVMパターンとものすごく相性が良い。
補足すると最初からロジックを分けているのであれば、
各クラスを個別で単体テストしてしまえば良いと言えるが、
MVVMモデルをテストする上で厄介なのはバインドだ。
一般的にUnitテストは1クラスに対してテストケースを作成するが、
ViewModel(VM)を対象にした場合、対象を1クラスにしてしまうと、
バインド情報を無視する事になり健全なテストと言い切るのは難しい。
その点、Friendlyであれば別プロセスで実行中のアプリケーションをAPI化して
テストしてしまうので、バインド情報が生きたまま1クラス(ViewModel)に対するテストが可能なのだ。
MVVMモデルで単体テストを行うなら
バインドの事情も踏まえつつ単体テストが可能なFriendlyを是非推したい。
さて話がガラリと変わりますが、
Friendlyを利用してWPFの各イベントフローの調査ツールを作る話を
アドベントカレンダーで話したいと思います。
興味ある方は次の記事も是非見ていただければ嬉しいです。
http://qiita.com/advent-calendar/2016/csharp
2016/12/22