2011-10-05 110 views
0

我有一个工厂方法可以创建某个接口的新实例。使用依赖注入的测试方法(结构图)

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

我该如何测试这种方法?

+0

可能的重复:[StructureMap on unit testing](http://stackoverflow.com/questions/2216643/structuremap-on-unit-testing) – dwonisch

回答

1

如果您让工厂将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)); 
} 

的例子使用犀牛嘲笑和NUnit,但当然你也可以测试和存根任何你想要的方式。

0

我终于能够实现我想要的。

如果你会考虑它,你想在一个孤立的环境中执行你的测试。

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