2017-02-07 12 views
0

以下のスニペットをすべてのテストメソッドでどのように実装できるかについてアドバイスが必要です。@RuleのJUnitパラメータ@Beforeと@After

@Test 
public void testCatalogItemUpdate() { 
    String correlationId = getCorrelation(); 
    try { 
     parallel().actions( 
     //use correlationId 
     //invoke test scenario 
     //assert results 
    ); 

    } finally { 
     print(correlationId); 
    } 
} 

@Ruleと@Beforeアノテーションと@Afterアノテーションについて読みました。

+0

correlididは常に同じですか?そうでない場合はどこから来るのでしょうか? –

+0

テストが実行されるのはいつですか?前 ?後?途中で ? – otonglet

+0

これはテストですか、各テストの準備か、テスト後のクリーンアップですか? – Rhayene

答えて

0

私は十分なポイントがないので、私は私の理解で解決策を与えようとしました。以下のようなパラメータセクションでコメントを追加したものの1つを明確にしてください

parallel().action(/*test scenario and assert results are here*/); 

具体的な理由は何ですか?

ここにコードスニペットがあります。

public class MyBeforeTest extends TestDesignerBeforeTestSupport { 
    @Override 
    public void beforeTest(TestDesigner designer) { 
     designer.echo("This action should be executed before suite"); 
    } 
} 

<bean id="myBeforeTest" class="my.company.citrus.MyBeforeTest"/> 

beforeTest方法がある:それは

private String correlationId; 
@Before 
public void beforeEachTest(){ 
    correlationId = getCorrelation(); 
    parallel().actions(correlationId); 
} 

@Test 
public void testCatalogItemUpdate(){ 
    //Execute test scenario using correlationId 
    //Assert results 
} 

@After 
public void afterEachTest(){ 
    print(correlationId); 
} 
+0

投稿ありがとうございます。私はこれをチェックすると信じています – user3499805

0

テストの開始時または終了時にこれらのアクションを実行する必要がある場合は、それらのBeforeTestまたはAfterTestコンポーネントを使用できます。これらのセクションでCitrusテストを呼び出せるかどうかはわかりませんが、試してみることができます。ここでは(あなたはシトラス・コンテキストファイルに追加する必要があります)試験前の使い方の例です。

<citrus:before-test id="defaultBeforeTest"> 
    <citrus:actions> 
     <citrus-test:java class="<class path and class name to be here" > 
      <citrus-test:method name="<method name>" > 
       <citrus-test:argument>${<if any variable should be passed>}</citrus-test:argument> 
       <citrus-test:argument>1</citrus-test:argument> 
      </citrus-test:method> 
     </citrus-test:java> 
     <!-- access to Citrus method --> 
     <citrus-test:purge-channel> 
      <citrus-test:channel name="<server_name>.inbound"/> 
     </citrus-test:purge-channel> 
    </citrus:actions> 
</citrus:before-test> 

また、あなたはそのコードを実行する必要がある場合は特に、シトラス(http://www.citrusframework.org/reference/html/templates.html)でテンプレートを見てもよいですテストケースの途中で

0

を助けている場合、あなたはBeforeTestSupportクラスを拡張し、Springアプリケーションコンテキストにこれらを追加する必要がありシトラス

にBeforeTestSupportクラスを使用することができます確認してくださいCitrusでJava DSL呼び出しを受信できるテストデザイナインスタンスが提供されています。もちろん、テストランナーの代わりにそれぞれのベースTestRunnerBeforeTestSupportクラスを使用することもできます。

+0

返信ありがとうございます。私もそれらを見てみましょう。現在、 "@前"と "@After"私はそれがよりクリーンなソリューションを見つける – user3499805

関連する問題