Ist das mit Unity möglich (anstelle von Castle Windsor)?

DieseBlogeintrag zeigt eine Möglichkeit, Auto-Mocking mit Castle Windsor und NSubstitute zu implementieren.

Ich kenne oder benutze Castle Windsor nicht, aber ich benutze Unity und NSubstitute.

Gibt es eine Möglichkeit, das, was er zeigt, mit Unity zu tun?

Hier ist der relevante Inhalt des Beitrags:

Registrieren Sie zunächst einen ILazyComponentLoader in Windsor:

var c = new WindsorContainer();    
c.Register(Component.For<LazyComponentAutoMocker>());

Die Implementierung von LazyComponentAutoMocker sieht dann einfach so aus:

public class LazyComponentAutoMocker : ILazyComponentLoader
{    
  public IRegistration Load(string key, Type service, IDictionary arguments)    
  {    
    return Component.For(service).Instance(Substitute.For(new[] { service }, null));    
  }    
}

Und du bist fertig! Hier ist ein einfaches Unit-Test-Beispiel, das nur den obigen Code verwendet:

[Test]
public void IDictionary_Add_Invoked()
{
  var dict = c.Resolve<IDictionary>();
  dict.Add(1, 1);
  dict.Received().Add(1, 1);
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage