このブログ投稿は、CastleWindsorとNSubstituteを使用して自動モックを実装する方法を示しています。
Castle Windsorを知らないか使用していませんが、UnityとNSubstituteを使用しています。
Unityを使用して彼が示していることを行う方法はありますか?
投稿の関連コンテンツは次のとおりです。
まず、ILazyComponentLoaderをWindsorに登録します。
var c = new WindsorContainer();
c.Register(Component.For<LazyComponentAutoMocker>());
次に、LazyComponentAutoMockerの実装は次のようになります。
public class LazyComponentAutoMocker : ILazyComponentLoader
{
public IRegistration Load(string key, Type service, IDictionary arguments)
{
return Component.For(service).Instance(Substitute.For(new[] { service }, null));
}
}
そして、あなたは完了です!上記のコードのみを使用した簡単な単体テストの例を次に示します。
[Test]
public void IDictionary_Add_Invoked()
{
var dict = c.Resolve<IDictionary>();
dict.Add(1, 1);
dict.Received().Add(1, 1);
}