2011-07-14 137 views
3

我正在開發的一個項目使用Spring和Struts。Struts測試JUnit4

到目前爲止,我們使用的是使用Struts 2.1.8.1。我所有的單元測試擴展了StrutsSpringTestCase,這又擴展了StrutsTestCase。但是,這使用JUnit 3.8.2,因此沒有註釋支持。

對於Struts 2.2.3,開發團隊added a Junit4 TestCase,名爲StrutsJUnit4TestCase。然而,該測試案例並不具有StrutsTestCase所做的支持功能,例如用於發佈struts動作。我試圖找到一些使用這個新測試用例的教程,但一直沒有運氣。

我應該提到,我試圖使用Rollback註釋來回滾測試過程中發生的自動回滾數據庫更改。

我到底該如何使用這個新的StrutsJunit4TestCase

回答

1

至少以下在我的電腦

public class BlaBlaBlaTestCase extends StrutsSpringTestCase { 
    private final Logger log = Logger.getLogger(this.getClass()); 

    @Override 
    public String getContextLocations() { 
     return "applicationContext_test.xml"; 
    } 

    @Test 
    public void testWhatever() { 
       //... 
    } 
} 

的getContextLocations方法是很重要的一個工作,因爲這是它定義在您的測試ApplicationContext需要的方法。

哦,我正在使用junit 4.4

+0

我寫了幾個這樣的測試。問題是我試圖編寫自動回滾的測試。 Junit4 +中添加了回滾註釋。我之前閱讀過一篇文章,自StrutsTestCase擴展了擴展junit(3.x)TestCase基類的XWorkTestCase。由於此註釋不起作用。因此編寫了StrutsJUnit4TestCase。 –

+0

哦,我從來沒有使用回滾註釋>。<很好,是的。如果我使用回滾註釋T_T – fajrian

+1

,如果您執行此操作,它仍然使用Junit 3,則可能我的代碼無法正常工作。在「testWhatever」之前移除「test」,然後您將看到「no test methods」錯誤。 – Christian

4

Struts2的行爲不過是簡單的類。我建議你測試他們測試其他類恕我直言的方式。
我一直在做這種方式大部分時間做struts2,幾乎感覺不到需要使用StrutsTestCase。如果你用DI設計你的動作,你可以在測試動作時注入任何依賴關係。