2011-07-14 8 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アクションを発行します。私はこの新しいテストケースを使用していくつかのチュートリアルを見つけようとしましたが、幸運はありませんでした。

私は、ロールバック注釈を使用して、テスト中に発生するデータベースの自動ロールバックをロールバックしようとしています。

この新しいものをどのように正確に使用するのですかStrutsJunit4TestCase

答えて

1

少なくとも以下の1は、このテストのためのあなたのApplicationContextがどこにあるかを定義する方法であるため、getContextLocations方法は、重要である

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() { 
       //... 
    } 
} 

私のコンピュータで動作します。

ああ、私はjunitを使用しています。4.4

+0

私はこのようにいくつかのテストを書いています。問題は、自動的にロールバックするテストを作成しようとしていることです。ロールバック注釈はJunit4 +で追加されました。 StrutsTestCaseはjunit(3.x)TestCase Baseクラスを拡張するXWorkTestCaseを拡張して以来、これまでの記事を読んでいます。このアノテーションのために動作しません。したがってStrutsJUnit4TestCaseが書かれました。 –

+0

ああ、私はロールバックアノテーションを一度も使用していない。おそらく私のコードは、私がロールバックの注釈を使用すると動作しませんT_T – fajrian

+1

これを実行すると、それでもJunit 3が使用されます。 "testWhatever"の前に "test"を削除し、 "no test methods"というエラーが表示されます。 – Christian

4

Struts2のアクションは単純なクラスに過ぎません。私は、他のクラスのIMHOをテストする方法をテストすることをお勧めします。
私はstruts2をやっている間ほとんどの時間この方法をやってきましたが、ほとんど使用する必要があると感じましたStrutsTestCase。 DIを使用してアクションを設計する場合は、アクションをテストする際に依存関係を注入することができます。

関連する問題