我很难弄清楚如何.SetupXXX()
调用. 任何人都可以阐明它应该如何工作?Mock<T>
MockingKernel
问问题
3921 次
1 回答
16
您需要调用其GetMock<T>
上的方法,该方法MoqMockingKernel
将返回生成Mock<T>
的您可以调用您的方法的.SetupXXX()/VerifyXXX()
方法。
这是一个演示GetMock<T>
用法的示例单元测试:
[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());
}
其中涉及的类型如下:
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());
}
}
请注意,您可以使用Moq.MockRepository
该属性访问生成的(如果您更喜欢 SetupXXX 方法)MoqMockingKernel.MockRepository
。
于 2012-11-03T21:10:14.300 回答