@Rule @Before和@After中的JUnit参数

时间:2017-02-07 09:05:17

标签: java junit junit4 citrus-framework

我需要就如何在所有测试方法中实现以下代码段提出建议。

[MFMailComposeViewController canSendMail]

我读过@Rule和@Before以及@After注释。

3 个答案:

答案 0 :(得分: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>

您还可以查看Citrus中的模板(http://www.citrusframework.org/reference/html/templates.html),特别是如果您需要在测试用例中运行该代码。

答案 1 :(得分:0)

我无法发表评论,因为我没有足够的积分,所以我试图用我的理解给出解决方案。所以请澄清一下您在参数部分添加注释的内容,如下所示

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

有什么具体原因吗?

以下是代码段。请检查是否有帮助

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

答案 2 :(得分:0)

您可以使用Citrus中的BeforeTestSupport类

您应该扩展BeforeTestSupport类并将它们添加到Spring应用程序上下文中:

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方法随测试设计器实例一起提供,然后该实例能够在Citrus中接收Java DSL调用。当然,您也可以使用相应基础TestRunnerBeforeTestSupport类的测试运行器替代方案。