我是一个刚接触Junit不久的新手, 请大家多多指点.
RT, 我想测试一个方法, 它的返回值无法在测试类里面构建, 我该如何测试这个方法呢?比如, Test是一个RequestTest方法的返回类型,有没有办法测试RequestTest这个方法呢?
public class TempClass
{
public Test RequestTest(int parameter){
if(parameter == 1)
{
return getTest(parameter);
}
else
{
return getTest(parameter);
}
}
private Test getTest() {
...
}
}

解决方案 »

  1.   

    方法都返回这个Test对象了
    你在test方法里面对这个返回的对象进行判断一下不就行了,比如!=null,,.someValue==xxx还用得着你构建吗?作参数的时候才需要你自己构建
      

  2.   


    谢谢, 但是我现在需要测试的这个方法的返回对象没有get方法, 也就是我无法知道这个类里面包含了些什么内容, 在return的时候, 是通过这个类的静态方法构建的它, 比如Test.generateResponseInternal(parameter), 这个类的公用方法全部都是generate开始的, 也就是说, 即使返回了, 我也无法确定它调用的是哪个方法进行构建对象的. 
    有点迷惑, 感觉无从下手.
      

  3.   

    你不用关心需要被测试的方法调用哪个method去create Test的吧Test requestTest(int para){
     Test test;
     //
      return test;
    }Assert(Test.generateResponseInternal(9999).equals(requestTest(123456)))这样不行?
      

  4.   


    很感谢您这样热心.
    但是这样还是不行的, 也许是我例子给得不好吧, 实际上, 对这个返回对象进行生成的时候, 参数被进行处理过的, 就像最上面的那段代码, 比如:Test.generateResponseInternal(getTest(parameter)).
    这个时候, 在测试类里面, 是无法构建这个对象的, 而且也无法获取这个方法返回值里面的内容, 是不是无法对这个方法进行测试了呢?
      

  5.   

    “需要测试的这个方法的返回对象没有get方法”:
    那么这个对象在程序里面还有什么用处呢?你这能判断它是不是null。
      

  6.   

     
    我也不知道这个类具体是干嘛用的, 里面很多静态方法, 都是用于生成这个对象的, 一些额外的处理没看明白.
    能判断是不是null, 但是即使判断了是否为null也没多大意义, 因为根据传进去参数的不同, 生成的这个对象也就不同了, 没法判断是否是我们想要的结果.
      

  7.   

    除非程序里面用反射来访问它的状态,,,,在test case里面也反射一下来测。