C# 使用依赖项注入(structuremap)的测试方法

C# 使用依赖项注入(structuremap)的测试方法,c#,nunit,structuremap,C#,Nunit,Structuremap,我有一个工厂方法,可以创建某个接口的新实例 我正在使用StructureMap创建接口的新实例 如何对该方法进行单元测试?如果您让工厂将IContainer作为一个ctor依赖项,那么您可以删除该容器 如果将结构映射配置为实例化工厂,则应通过结构映射自动解析IContainer 编辑: 我在想这样的事情,在测试时从方程中取出结构图: [Test] public void ResolvesFooFromContainer() { var expectedFoo = new Foo();

我有一个工厂方法,可以创建某个接口的新实例

我正在使用StructureMap创建接口的新实例


如何对该方法进行单元测试?

如果您让工厂将IContainer作为一个ctor依赖项,那么您可以删除该容器

如果将结构映射配置为实例化工厂,则应通过结构映射自动解析IContainer

编辑:

我在想这样的事情,在测试时从方程中取出结构图:

[Test]
public void ResolvesFooFromContainer()
{
   var expectedFoo = new Foo();
   var container = MockRepository.GenerateStub<IContainer>();
   container.Stub(c => c.GetInstance<Foo>()).Return(foo);
   var factory = new FooFactory(container);

   var createdFoo = factory.CreateFoo();

   Assert.That(createdFoo, Is.EqualTo(expectedFoo));
}
[测试]
公共无效解析RomContainer()
{
var expectedFoo=new Foo();
var container=MockRepository.GenerateStub();
container.Stub(c=>c.GetInstance()).Return(foo);
var工厂=新食品工厂(容器);
var createdFoo=factory.CreateFoo();
Assert.That(createdFoo,Is.EqualTo(expectedFoo));
}

该示例使用Rhino Mock和NUnit,但当然您可以按照任何方式进行测试和存根。

我终于能够实现我想要的

如果您考虑一下,您希望在一个隔离的环境中执行测试

所以我只需要用一个模拟对象初始化结构,就可以测试我的工厂方法。

可能的重复: