Phi*_*hil 6 nunit dependency-injection mocking ioc-container unity-container
我对Unity和依赖注入有些新意.我正在尝试编写一个类似于下面的单元测试:
[Test]
public void Test()
{
UnityContainer container = new UnityContainer();
DynamicMock myMock = new DynamicMock(typeof(IMyInterface));
container.RegisterInstance(typeof(IMyInterface), myMock.MockInstance); //Error here
// Continue unit test...
}
Run Code Online (Sandbox Code Playgroud)
执行此测试时,容器会在RegisterInstance方法中使用该消息抛出ArgumentNullException Value cannot be null. Parameter name: assignmentValueType.
堆栈跟踪的顶行是at Microsoft.Practices.Unity.Utility.Guard.TypeIsAssignable(Type assignmentTargetType, Type assignmentValueType, String argumentName).
为什么我不能在UnityContainer中注册MockInstance,我该如何解决这个问题呢?
我没有看到这个。我正在使用NUnit 2.5.5.10112和Unity 2.0(随 EntLib 一起提供,单独的版本尚不可用)。
更新:我刚刚检查了 1.2,我看到了你的行为。所以这是 1.2 的问题。
namespace UnityRepro
{
public interface IMyInterface
{
void Foo();
}
public class Class1
{
[Fact]
public void Test()
{
UnityContainer container = new UnityContainer();
DynamicMock myMock = new DynamicMock(typeof(IMyInterface));
container.RegisterInstance(typeof(IMyInterface), myMock.MockInstance); //Error here
Assert.NotNull(container.Resolve<IMyInterface>());
}
}
}
Run Code Online (Sandbox Code Playgroud)
请问可以更新到Unity 2.0吗?如果没有,我会尝试更深入地挖掘并找出到底发生了什么。但这可能是 1.2 的限制。
| 归档时间: |
|
| 查看次数: |
1323 次 |
| 最近记录: |