我需要就如何在所有测试方法中实现以下代码段提出建议。
[MFMailComposeViewController canSendMail]
我读过@Rule和@Before以及@After注释。
答案 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类的测试运行器替代方案。