JUnit 使用小问题,浪费了一个钟头……

    在Eclipse3.4当中写一个测试用例的时候,继承了TestCase,不知道是怎么脑袋一瞬间搭错线,在测试用例中,我自己写了这样一段代码:

public class AccountDAOTest extends SuperTestCaseForSpring {
 private AccountDAO accDao;

 public AccountDAOTest() {
 }
 public AccountDAOTest(String arg) {
 }
……

 

    而后运行其中的某个测试方法,结果总是在JUnit的调试界面当中,本应该显示所执行的方法名,但是却显示的是null

 

JUnit小问题 图1

 

    于是找原因找了老久,之前还以为是开发环境太新造成的问题,后来又清理了一下build path,最终问题锁定到带了一个参数的构造函数 AccountDAOTest(String arg) 上,将该方法删除即可,或者修改代码为:

public AccountDAOTest(String arg) {
    super(arg)
}

 

    其实翻阅JUnit 3的TestCase的源代码很容易发现 TestCase当中有一个构造函数,只带一个String类型的参数,而我这里写的代码,恰好覆写了这个构造方法,而后又没有像TestCase里面那样给字段fName赋值。

    而我们执行测试的时候,最终会执行 TestCase 中的 runTest() 方法,于是乎在这个方法的第一行,断言fName不为空的代码就无法通过~~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值