【发布时间】:2011-10-05 18:01:57
【问题描述】:
我有一个工厂方法可以创建某个接口的新实例。
我正在使用 StructureMap 创建接口的新实例。
如何对这个方法进行单元测试?
【问题讨论】:
标签: c# nunit structuremap
我有一个工厂方法可以创建某个接口的新实例。
我正在使用 StructureMap 创建接口的新实例。
如何对这个方法进行单元测试?
【问题讨论】:
标签: c# nunit structuremap
如果您让工厂将 IContainer 作为 ctor 依赖项,您可以将容器存根。
如果您配置 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 Mocks 和 NUnit,但当然您可以使用任何您想要的方式进行测试和存根。
【讨论】:
我终于能够实现我想要的。
如果您考虑一下,您希望在隔离环境中执行测试。
所以我只需要使用模拟对象初始化结构,就可以测试我的工厂方法。
【讨论】: