从 Concordion 测试规范中初始化对象

Initializing objects from within Concordion test spec

我想使用 Concordion 为作为黄瓜教程的一部分提供的简单 bankAccount pgm 编写测试。我在弄清楚如何从 concordion 测试规范中初始化对象时遇到问题。

我在夹具中创建了一个名为 createAccount 的方法,它将 initialBalance 和帐号作为参数。

我从测试规范中调用它...

<b concordion:execute="createAccount(#accountNum,#initBalance)">

但是当我 运行 测试时我得到一个错误....

java.lang.Exception: 方法 createAccount 不应有参数。

我知道我可以从夹具中为这些变量赋值 class,但我认为如果我可以从测试规范中这样做会更有用。

下面是我的测试夹具的一部分,调用了 createAccount

@RunWith(ConcordionRunner.class)
public class CashMachineTest {

    private Account newAccount;
    int initBalance = 123;
    int accountNum = 1;

    @Before
    public void createAccount(int accountNum, int initBalance) throws     Throwable{
        newAccount = new Account(accountNum, initBalance);
    }

    public int getBalance(){
        return newAccount.getBalance();
    }

    public void deposit(int amount){
        newAccount.deposit(amount);
    }

.....

如有任何帮助,我们将不胜感激。

当您想从 Concordion 规范中调用初始化方法时,不需要 @Before 注释。 JUnit 使用它在实际测试方法执行之前调用方法。但是 Concordion 没有 运行 一个单一的测试方法,而是根据您在规范文档中的检测调用 fixture class 中的方法。

请尝试删除@Before 注释并重试。