【C#】NSubstituteを使用してクラスをモックとして偽装する

 

NSubstituteとは?

 

定義されたinterfaceを使用して、クラスの振る舞いをモックとして定義することが出来るライブラリ

 

interfaceに定義されているフィールドやメソッドの返す値や動作を一つずつ定義できるので、テストしたいクラスに渡すデータなどの偽装が可能

 

とにかく非常に便利で、使いやすく有用

 

入手はこちら

github.com

 

 

Unityで使用する際はUnity Test Tools を入手して、Pluginsの中にdllを入れると動作する

 

https://www.assetstore.unity3d.com/jp/#!/content/13802

 

基本的に実機動作はしません、UnityならEditor上のみで使用するようにしてください 

 

簡単な使い方

 

クラスとフィールド、メソッドの動作を偽装した例

 

gist.github.com

 

 

割と簡単に定義できる

 

 

ちょっとした小技

 

メソッドの中で自身のフィールドを変更したい時などは、一度データをキャッシュするとよい

 

gist.github.com

 

直接フィールドを書き換えることはできないので、気をつけよう

 

 

ある特定の機能だけ動作させたいけどデータがないよ〜という時はガンガン使っていこう