2013-05-01 57 views
0

我可以使用Spring.NET的基類(a AbstractDependencyInjectionSpringContextTests)來加載應用程序上下文並使用MSTest執行依賴注入嗎?將Spring.NET與Specflow集成

我正在嘗試開發事務性方案,最終會實現現場整合數據庫並回滾。我有一套從Spring擴展的基類,它們在我們的應用程序平臺上執行一些必要的初始化。

我想我可以抽象出來並使用Before和After鉤子,但我想盡可能保持它與我們已有的相似,並繼續使用自動佈線依賴注入。

回答

0

我建議你看看SpecFlow的ContextInjection-feature。這是一個簡單但功能強大的功能,它允許您將對象直接注入到步驟定義類中。

例如,您可以按照您的需要配置事務組件,然後將配置的對象直接注入到步驟中。可以這麼說,創建一個「只用於測試」的版本。

對於我之前使用過的Before/AfterScenario掛鉤的事務,但是如您所說那樣有點隱藏。它雖然工作正常。

希望這有助於

+0

ContextInjection需要與空構造函數的類,我不認爲這是非常適合的依賴注入。之前/之後我認爲可能是最好的選擇,但我特別想重新使用Spring.NET基類來進行測試。 – pcw216 2013-05-03 15:01:54

0

我能夠擴展Spring測試基類和掛鉤測試初始化​​Specflows /清理前/方案後。至少我的課堂課程將自動連接必要的依賴關係。

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