0

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

我正在尝试开发最终将命中实时集成数据库并回滚的事务场景。我有一组从 Spring 扩展而来的基类,它们在我们的应用程序平台上执行一些必要的初始化。

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

4

2 回答 2

0

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

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

对于交易,我之前使用过 Before/AfterScenario 挂钩,但正如您所说,这有点隐藏。它工作正常。

希望这可以帮助

于 2013-05-02T11:36:42.880 回答
0

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

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();
    }
}
于 2013-05-03T15:05:49.360 回答