Java @Rule@Before和@After中的JUnit参数
我需要一个关于如何在所有测试方法中实现以下代码段的建议Java @Rule@Before和@After中的JUnit参数,java,junit,junit4,citrus-framework,Java,Junit,Junit4,Citrus Framework,我需要一个关于如何在所有测试方法中实现以下代码段的建议 @Test public void testCatalogItemUpdate() { String correlationId = getCorrelation(); try { parallel().actions( //use correlationId //invoke test scenario //assert results );
@Test
public void testCatalogItemUpdate() {
String correlationId = getCorrelation();
try {
parallel().actions(
//use correlationId
//invoke test scenario
//assert results
);
} finally {
print(correlationId);
}
}
我阅读了@Rule和@Before和@After注释。如果您需要在测试开始或结束时执行这些操作,您可以尝试使用这些BeforeTest或AfterTest组件。我不确定您是否可以在这些部分中调用柑橘测试,但您可以尝试。以下是使用before test的示例(您需要将其添加到citrus上下文文件):
${}
1.
您也可以查看CuthReS()中的模板,特别是如果您需要在测试用例中间运行该代码。
< P>我不能评论,因为我没有足够的分数,所以我试图用我的理解来给出解决方案。因此,请澄清您在参数部分添加注释的一件事,如下所示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);
}
您可以在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"/>
公共类MyBeforeTest扩展了TestDesignerBeforeTest支持{
@凌驾
测试前公共无效(TestDesigner){
echo(“此操作应在套件之前执行”);
}
}
beforeTest方法随testdesigner实例一起提供,该实例随后能够接收Citrus中的javadsl调用。当然,您也可以将TestRunner备选方案与相应的基本TestRunnerBeforeTestSupport类一起使用。correlationid是否始终相同?如果不是从哪里来的?测试应该在什么时候运行?之前之后在中间?这是一个测试,每个测试的准备还是测试后清理的东西?断言在哪里?目前这只是一次跑步。没有断言,这不是一个测试。我试图修改代码示例,以回答上面的所有问题。谢谢您的帖子。我相信我会检查这个谢谢你的回复。我也会看一看。目前在“@Before”和“@After”我发现它更干净
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"/>