lar*_*rsw 11 ninject moq ninject-mockingkernel
我正在努力想弄清楚如何.SetupXXX()对Mock<T>内部生成的底层进行调用MockingKernel.任何能够阐明它应该如何工作的人?
nem*_*esv 15
您需要调用该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());
}
Run Code Online (Sandbox Code Playgroud)
涉及的类型如下:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,您可以使用属性访问生成的Moq.MockRepository(如果您更喜欢使用SetupXXX方法)MoqMockingKernel.MockRepository.
| 归档时间: |
|
| 查看次数: |
3733 次 |
| 最近记录: |