现在用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));测试也通过,我就郁闷了...有碰过类似问题的朋友来解释下的么。
感激先。

解决方案 »

  1.   

    那么如果你再实例化一个TestLines对象testLines2,用在assertEquals(28, testLines2.getSumLine(f))这里是什么结果??
      

  2.   

    ...你先用system.out 看看testLines1.getSumLine(f)是个什么东东先
      

  3.   

    回楼上的,我print出来就是一个20,一个28.
    问题是我2个放一起测试就不通过,一个一个就能通过。
    代码是这样的private void countLines(File f) {
        //if (f.isFile() && f.toString().endsWith("java")) {
          try {
            BufferedReader br = new BufferedReader(new InputStreamReader(new
                FileInputStream(f)));
            while (br.readLine() != null) {
              sumLine++;
            }
          }
          catch (FileNotFoundException ex) {
          }
          catch (IOException ex1) {
          }
        //}
        if (f.isDirectory()) {
          File file[] = f.listFiles();
          for (int i = 0; i < file.length; i++) {
            countLines(file[i]);
          }
        }
      }  /**
       * @param f
       * @return
       */
      public long getSumLine(File f) {
        countLines(f);
        return sumLine;
      }
      

  4.   

    哦,问题解决了...
    countLines里面把sumLine初始化了下好了。
      

  5.   

    另外有用Junit的,能谈谈除了这个方法,一般测试还用什么方法啊?
    希望能专业一点的!谢谢了。
      

  6.   

    顶一下,没有用JUnit的高手了么?
      

  7.   

    你的问题,是没有使用循环来处理
    你在一个测试用例里面,测试复数结果集的时候,该使用循环来处理。
    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:取得结果的内容与预期的结果内容是否一一对应。
      

  8.   

    一个一个当然能测试啦,你打开文件后有关闭吗??
    如果运行二个的时候,一个测试肯定行的,但第二个在文件打开的基础上再打开,你说能行不??所以要在
    catch后面加个
    finally{
        try{
             br.close();
          }catch(Exception e){}
    }
      

  9.   

    如果测试的函数返回一个结果集,应该怎么测试啊,请高手指教,比如返回的是一个ArrayList
      

  10.   

    貌似junit可以测试集合的,也可以assertEquals,你google一下junit单元测试,有讲到的。
      

  11.   

    返回的是一个ArrayList,我做的话会先比较List的范围,然后再循环取出内容比较值,另外还需要测试异常系,比如故意造成返回值为空或者List的长度为0之类的~~~