Kri*_*ris 3 c# unit-testing moq unity-container
由于我的sut类具有带有IUnityContaineras参数的构造函数,因此我想在单元测试中设置一个新的Unity容器并将其传递给sut。我喜欢在这里使用Moq,因为对于某些方法调用,我也必须非常认真。我在这里尝试过的是
public interface IFoo
{
void Bar();
}
class Program
{
static void Main(string[] args)
{
var fooMock = new Mock<IFoo>();
fooMock.Setup(x => x.Bar()).Callback(() => Console.WriteLine("Hello"));
IUnityContainer container = new UnityContainer();
container.RegisterType(typeof (IFoo), fooMock.Object.GetType());
var sut = container.Resolve<IFoo>();
sut.Bar();
Console.Read();
}
}
Run Code Online (Sandbox Code Playgroud)
但是这导致的ResulutionFailedException。有什么想法我可以做什么,或者可以替代这个问题?
您已经有对象IFoo的实例fooMock,因此您需要使用RegisterInstance方法进行注册:
container.RegisterInstance<IFoo>(fooMock.Object);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2292 次 |
| 最近记录: |