2012-11-03 3 views

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.

+0

Danke! Ich habe mich nur auf das MoqModul usw. konzentriert - nicht auf den MoqMockingKernel. – larsw