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



我有一个工厂方法,创建一个特定接口的新实例。

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

我如何对这个方法进行单元测试?

如果你让工厂接受一个IContainer作为一个依赖,你就可以把这个容器存根。

如果你配置了Structure Map来实例化工厂,那么IContainer应该由Structure Map自动解析。

编辑:

我正在考虑这样的事情,在测试时将结构映射从等式中取出:

[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));
}

这个例子使用了Rhino mock和NUnit,当然你可以用任何你想要的方式来测试和存根。

我终于实现了我想要的。

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

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

最新更新