我想使用Concordion为一个简单的bankAccount pgm编写测试,该pgm作为黄瓜教程的一部分提供。我在解决如何从协调测试规范中初始化对象时遇到了麻烦。
我在夹具中创建了一个名为createAccount的方法,该方法将initialBalance和帐号作为参数。
我用测试规范称它为...
<b concordion:execute="createAccount(#accountNum,#initBalance)">
但是当我运行测试时出现错误....
java.lang.Exception:方法createAccount应该没有参数。
我知道我可以从夹具类中为这些变量赋值,但是如果我可以从测试规范中做到这一点,那么它会更有用。
下面是我的测试夹具的一部分,调用了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);
}
...
非常感谢任何帮助。
答案 0 :(得分:2)
如果要从Concordion规范中调用初始化方法,则不需要@Before注释。 JUnit使用它在执行实际测试方法之前调用方法。但Concordion不运行单个测试方法,而是根据规范文档中的检测调用fixture类中的方法。
请求,尝试删除@Before注释,然后重试。