2012-11-03 4 views

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.

+0

Grazie! Mi sono concentrato solo su MoqModule, ecc., Non su MoqMockingKernel. – larsw