private方法不应该被测试。这个private方法应该被public方法调用,junit测试public方法,就顺便测试了private方法。

解决方案 »

  1.   

    faint,楼上的,没那么严重吧?俺公司正打算用bugzilla呢。。
      

  2.   

    不是吧,private 变量 /方法 怎么在外能够访问呢?
      

  3.   

    这个private方法应该被public方法调用
    ----------
    这个private方法应该被该类的public方法调用.
    另外,private 变量 /方法能被外部访问.
    使用反射机制即可.
      

  4.   

    确实是这样的
    private方法对外部是不可见的,你应该没有外部的直接调用,所以没有必要测试这个啊
      

  5.   

    JUnit 无法对私有方法做测试,可以将这个方法改为public的然后测之。
      

  6.   

    to xianghui817(简) :那还叫测试么?--不是变成糊弄事
      

  7.   

    to cm4ever(小P)(bugzilla真差劲,mantis比它好10倍) :能不能详细说说怎么用反射机制怎么用图访问私有方法!to ALL:
    如果通过public来测private的话,岂不是testCase会比较复杂,而且,语义不清
    首先private方法子所以存在,一般都是疑问有多个public要调用他,而且走不同的分支
    如果在每个public中都测一编private中的一部分,这样会比较混乱,也不符合Junit的宗旨呀!希望大家指教
      

  8.   

    如果在每个public中都测一编private中的一部分
    ----------
    在当前类中public方法调用private方法,并不需要"都测一遍"啊。而且,这里怎么需要测试呢?只是Junit测类的public方法。每个方法出错/抛出异常时, 都记录类与方法名称(或者e.printStackTrace();)。那么你还会不知道是哪里出的错吗?反射方式搜索论坛就有用法。
      

  9.   

    既然是private方法,那就是不必要测试的。
    你仔细想想就知道为什么了。
      

  10.   

    kao ,你可以先改成public 测完后,再改过来不久得了
      

  11.   

    完全不必要对private方法做测试,否则将来对private方法重构则需要改变测试代码
      

  12.   

    zhuimeng318(到此为止) :kao ,你可以先改成public 测完后,再改过来不久得了堪称精典...