ich eine wirklich harte Zeit habe versucht, Figur, wie ich .SetupXXX()
fordert die zugrunde liegenden Mock<T>
tun können, die innerhalb des MockingKernel
erzeugt wurde. Wer kann etwas darüber sagen, wie es funktionieren soll?Wie mit Ninject der MockingKernel (moq) Aufbau von Mocks zu tun
10
A
Antwort
15
Sie benötigen die GetMock<T>
Methode auf dem MoqMockingKernel
zu nennen, die die erzeugte Mock<T>
auf dem kehren Sie Ihre .SetupXXX()/VerifyXXX()
Methoden aufrufen können. Hier
ist ein Beispiel Unit-Test, der die GetMock<T>
Nutzung demonstriert:
[Test]
public void Test()
{
var mockingKernel = new MoqMockingKernel();
var serviceMock = mockingKernel.GetMock<IService>();
serviceMock.Setup(m => m.GetGreetings()).Returns("World");
var sut = mockingKernel.Get<MyClass>();
Assert.AreEqual("Hello World", sut.SayHello());
}
Wo die beteiligten Arten sind die folgenden:
public interface IService { string GetGreetings(); }
public class MyClass
{
private readonly IService service;
public MyClass(IService service) { this.service = service; }
public string SayHello()
{
return string.Format("Hello {0}", service.GetGreetings());
}
}
Beachten Sie, dass die erzeugte Moq.MockRepository
zugreifen können (wenn Sie es vorziehen, es über die SetupXXX-Methoden) mit der Eigenschaft MoqMockingKernel.MockRepository
.
Danke! Ich habe mich nur auf das MoqModul usw. konzentriert - nicht auf den MoqMockingKernel. – larsw