从 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 注释并重试。
我想使用 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 注释并重试。