nuits.jp blog

C#, Xamarin, WPFを中心に書いています。Microsoft MVP for Development Technologies。

Moq用の拡張ライブラリを作ってみた?

なんだか、疑問形のタイトルにするとクリック率+200%らしいのでそうしてみました。

さて、皆さんもっきゅ使ってUnitTestしていますか?
便利ですよね!私は毎日使っています。

ただ、たまにちょっと面倒だなって思うところがあって、サポートする拡張ライブラリを作ってNuGetにも公開してみました。

www.nuget.org

良かったら見ていってください。

とはいえ、今のところできることは一つだけです(笑

INotifyPropertyChangedインターフェースを実装しているクラスのMockから、PropertyChangedイベントを投げたい時ってありますよね?
そんな場合、こういうテストコードを書く必要があります。

mock.Setup(m => m.Value).Returns("NewValue");
mock.Raise(m => m.PropertyChanged += null, new PropertyChangedEventArgs("Value"));

このライブラリを使うと、こんな風に書けて幸せになれます。

mock.NotifyPropertyChanged(m => m.Value, "NewValue");

簡単ですね!
でもこれだけ!
という訳で、ライブラリ使っていただかなくても、アイディアだけ使っていただいても結構です。
コードはこちらに公開していますので、ご覧ください。

github.com

今後何か思いついたら機能追加するかもしれませんが、このままで終わる可能性も大いにあります。

え?Gistでいいんじゃないのって?
そう思ってGistも用意しときました。

You can easily publish PropertyChanged events from ...

けど、毎回つくるのもあれだし、できたら拡張続けたいなと思いましてライブラリにしました。
あと特定のコンテキストに依存しすぎる内容なので本家へのPull Requestもやめときました。

という訳で今回はこれだけです。
それではまた!