如何将IoC容器用于单元测试?使用IoC在大型解决方案(50多个项目)中管理模拟是否有用?有经验吗?任何C#库在单元测试中都能很好地使用它吗?
我对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 dependency-injection mocking ioc-container unity-container
我有一个现有的ASP.NET MVC应用程序,在SQL Server数据库中有一些示例数据,工作正常.
假设我已经拥有了所有必需的存储库和IOC,是否有一个工具可以从一组表中提取数据,并将其"冻结"成一个模拟对象(可能使用XML文件来存储数据) ,以便我可以分离数据库并使用模拟数据进行单元测试?