Sto attraversando un periodo davvero difficile cercando di capire come posso effettuare chiamate .SetupXXX()
sul sottostante Mock<T>
che è stato generato all'interno dello MockingKernel
. Chiunque può fare luce su come dovrebbe funzionare?Come eseguire l'installazione di mock con Ninject's MockingKernel (moq)
10
A
risposta
15
è necessario chiamare il metodo GetMock<T>
sul MoqMockingKernel
che restituirà l'generata Mock<T>
su cui è possibile chiamare i tuoi .SetupXXX()/VerifyXXX()
metodi.
Ecco un test di esempio, un'unità che dimostra la GetMock<T>
utilizzo:
[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());
}
Dove i tipi coinvolti sono i seguenti:
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());
}
}
Si noti che è possibile accedere al generato Moq.MockRepository
(se si preferisce tramite i metodi SetupXXX) con la proprietà MoqMockingKernel.MockRepository
.
Grazie! Mi sono concentrato solo su MoqModule, ecc., Non su MoqMockingKernel. – larsw