日期:2014-05-20  浏览次数:20719 次

问个关于JUnit的问题。有经验的高手帮帮忙。
现在用JUnit测试几个方法,请问除了assertEquals,还需要用什么方法来测试么?怎么让测试显的更专业呢?
还有请问帮我看看这个问题,我的代码是这样的.
public void testMain() {
TestLines testLines1 = new TestLines();
File f = new File("Test.java");
assertEquals(20, testLines1.getSumLine(f));
assertEquals(28, testLines1.getSumLine(f));
}

测试不通过,有一个错误,但是如果只有assertEquals(20, testLines1.getSumLine(f));这行,测试通过,同样,只有
assertEquals(28, testLines1.getSumLine(f));测试也通过,我就郁闷了...有碰过类似问题的朋友来解释下的么。
感激先。


------解决方案--------------------
...你先用system.out 看看testLines1.getSumLine(f)是个什么东东先

------解决方案--------------------
你的问题,是没有使用循环来处理
你在一个测试用例里面,测试复数结果集的时候,该使用循环来处理。
private void assertMQBean(MQFields mqbean, MQFields a_mqbean,String testName, int in_Group_No_Key) throws Exception{
// 結果比較
// 配列項目

//mqbean 测试结果
//a_mqbean 预期结果
//((String[])mqbean.get("aaa")).length 测试结果个数
//((String[])a_mqbean.get("bbb")).length 预期结果个数

assertEquals(((String[])mqbean.get("aaa")).length, ((String[])a_mqbean.get("bbb")).length);
for(int i=0;i<((String[])mqbean.get("aaa")).length;i++) {

assertEquals(((String[])mqbean.get("NO"))[i].trim(), ((String[])a_mqbean.get("NO"))[i].trim());
assertEquals(((String[])mqbean.get("aaa"))[i].trim(), ((String[])a_mqbean.get("bbb"))[i].trim());

}
}

}


// 結果比較
assertMQBean(mqbean, a_mqbean,testName,GROUP_NO_1);

这个assertMQBean是自己定义的方法,里面按照取得的结果,和自己预想的结果来做比较。

要比较的内容包括:
1:取得结果的个数与预期的结果个数是否一致
2:取得结果的内容与预期的结果内容是否一一对应。