1

すべての@Beforeメソッド、次にすべての@Testメソッド、次にすべての@Afterメソッドを実行するjunitランナーが必要です。

これが私のシステムテストの仕組みです。@Beforeメソッドが実行され、テストデータとシナリオが設定されます。アプリケーションが起動します。次に、@ Testメソッドは、アプリケーションをバックグラウンドで実行して実行されます。これらの@Testメソッドは、データを変更したり、アプリケーションに応答したりできます。次に、フレームワークはアプリケーションが終了するのを待ちます。その後、@ Afterメソッドを実行して、テスト結果を検証します。

私はすでにjunitアノテーション、アサーションメソッド、およびその他のさまざまなビットを使用しています。しかし、この方法でjunitsランナーを使用してテストメソッドを実行する方法がわかりません。junit 4.8の「Computer」インターフェースのヘッドもテールも作成できませんでした。また、これにルールを適用する方法を理解することもできませんでした。

4

2 に答える 2

1

これはJUnitが行うことではありません。JUnitには、独立した単体テストを強調する設計哲学があります。そのため、システムテストの自然なフレームワークではありません。やりたいことはTestNGにうまく適合します(設計目標として、ユニットテストとシステムテストの両方にまたがろうとします)。

JUnitでは、@Beforeと@Afterがテストの前後に実行されます。すべてのテストを参照し、すべてのセットアップと分解を担当するスイートを使用して、この種のことをJUnitに組み込むことができるため、スイートの@BeforeClassメソッドと@AfterClassメソッドは、スイートの前後で実行されます。正しくは、すべてのシステムテストである可能性があります。

JUnitアプローチでコードが大きくなると、組織的な課題がたくさんあるので、これがやりたいことの大部分である場合は、代替フレームワークを検討することをお勧めします。

于 2010-08-20T02:41:21.483 に答える
0

これは、実際のテストメソッドを1つだけ作成することで解決できると思います。つまり、呼び出しだけが実際のテストであり、そのようなものとして宣言することはありません。

ちょっと好き:

@Before
public void beforeTest(){}

@After
public void afterTest(){}

@Test
public void test(){
    test1();
    test2();
    test3();
}

public void test1(){}

public void test2(){}

public void test3(){}
于 2014-03-13T14:30:59.423 に答える