将Spring.NET与Specflow集成

时间:2013-05-01 17:23:31

标签: mstest spring.net specflow

我可以使用Spring.NET的基类(la AbstractDependencyInjectionSpringContextTests)来加载应用程序上下文并使用MSTest执行依赖注入吗?

我正在尝试开发最终会影响实时集成数据库和回滚的事务方案。我有一组从Spring扩展的基类,它们在我们的应用程序平台上执行一些必要的初始化。

我想我可以抽象它并使用Before和After钩子,但我希望尽可能保持它与我们已有的相似并继续使用自动连接依赖注入。

2 个答案:

答案 0 :(得分:0)

我建议你看一下SpecFlow的ContextInjection-feature。它是一个简单但功能强大的功能,允许您将对象注入到步骤定义类中。

例如,您可以按照自己的方式配置事务组件,然后将配置的对象直接插入到您的步骤中。可以这么说,创建一个“仅用于测试”的版本。

对于事务我之前使用过Before / AfterScenario挂钩但是你说的有点隐藏。它工作正常。

希望这有帮助

答案 1 :(得分:0)

我能够扩展Spring测试基类并使用Specflows Before / After场景连接测试初始化​​/清理。至少,我的步骤类将使用必要的依赖项自动连接。

https://github.com/techtalk/SpecFlow/wiki/Hooks

[Binding]
public class MySteps : AbstractDependencyInjectionSpringContextTests
{

    protected override string[] ConfigLocations
    {
        get
        {
            return new string[] { 
              "assembly://My.Assembly/Path.To.Config/My.config" };
        }
    }

    public IMyService MyService { get; set; }

    [Before]
    public void BeforeTest()
    {

        this.TestInitialize();
    }

    [After]
    public void AfterTest()
    {
        this.TestCleanup();
    }
}