你如何使用concordion:运行参数?

时间:2015-09-09 15:29:08

标签: bdd concordion

我想使用参数运行Concordion规范。我想要做的是使用concordion:run执行规范。 little research指出我存在concordion:params属性,但我找不到任何文档或示例。

我不确定这两个命令是如何组合在一起的; params元素应该嵌套在run元素内还是外部?要填写的值是什么concordion:params="?"concordion:set来电中,我在哪里指定参数值?

1 个答案:

答案 0 :(得分:1)

concordion:params是与concordion:run属性在同一元素上使用的属性。

例如,在MyIndex.html中:

<a concordion:run="concordion" concordion:params="foo=5" href="MySpec.html">My Spec</a>

使用夹具类:

@RunWith(ConcordionRunner.class)
@FullOGNL
public class MyIndex {
    public void setFoo(Integer foo) {
        System.out.println("foo = " + foo);
    }
}

请注意,@FullOGNL属性是必需的,以允许表达式中的语法foo=5,否则将被允许。

注意: Tim Wright对这种方法有pointed out的问题:

  

我看到的问题是可能从两个运行相同的规范   不同的规格(或从单一规格运行两次)   具有不同的参数以及没有参数的jUnit。如   我们只创建一个HTML文件,行为可能不是用户的行为   预计。它还意味着使用concordion:run将创建一个   将规范直接作为jUnit测试运行的不同规范    - 这是我们努力避免的事情。

     

当前行为(使用一致性运行缓存)是   第一个被调用将创建HTML文件 - 第二个   将从缓存返回运行结果,从而忽略参数。

这可能意味着我们弃用了concordion:params并在2.0中将其删除。