Junit如何测试返回对象无法在测试类里构建的方法

fsh2008 2010-04-28 05:39:11
我是一个刚接触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() {
...
}
}


...全文
199 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fsh2008 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 michaellufhl 的回复:]

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

谢谢, 我再仔细研究一下这个类, 应该有其他方法来进行判断的.
michaellufhl 2010-04-28
  • 打赏
  • 举报
回复
除非程序里面用反射来访问它的状态,,,,在test case里面也反射一下来测。
fsh2008 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 michaellufhl 的回复:]

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

我也不知道这个类具体是干嘛用的, 里面很多静态方法, 都是用于生成这个对象的, 一些额外的处理没看明白.
能判断是不是null, 但是即使判断了是否为null也没多大意义, 因为根据传进去参数的不同, 生成的这个对象也就不同了, 没法判断是否是我们想要的结果.
michaellufhl 2010-04-28
  • 打赏
  • 举报
回复
“需要测试的这个方法的返回对象没有get方法”:
那么这个对象在程序里面还有什么用处呢?你这能判断它是不是null。
fsh2008 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 believefym 的回复:]

你不用关心需要被测试的方法调用哪个method去create Test的吧
Java code

Test requestTest(int para){
Test test;
//
return test;
}

Assert(Test.generateResponseInternal(9999).equals(requestTest(123456)))


这样不行?
[/Quote]

很感谢您这样热心.
但是这样还是不行的, 也许是我例子给得不好吧, 实际上, 对这个返回对象进行生成的时候, 参数被进行处理过的, 就像最上面的那段代码, 比如:Test.generateResponseInternal(getTest(parameter)).
这个时候, 在测试类里面, 是无法构建这个对象的, 而且也无法获取这个方法返回值里面的内容, 是不是无法对这个方法进行测试了呢?
believefym 2010-04-28
  • 打赏
  • 举报
回复
你不用关心需要被测试的方法调用哪个method去create Test的吧

Test requestTest(int para){
Test test;
//
return test;
}

Assert(Test.generateResponseInternal(9999).equals(requestTest(123456)))


这样不行?
fsh2008 2010-04-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 believefym 的回复:]

方法都返回这个Test对象了
你在test方法里面对这个返回的对象进行判断一下不就行了,比如!=null,,.someValue==xxx

还用得着你构建吗?作参数的时候才需要你自己构建
[/Quote]

谢谢, 但是我现在需要测试的这个方法的返回对象没有get方法, 也就是我无法知道这个类里面包含了些什么内容, 在return的时候, 是通过这个类的静态方法构建的它, 比如Test.generateResponseInternal(parameter), 这个类的公用方法全部都是generate开始的, 也就是说, 即使返回了, 我也无法确定它调用的是哪个方法进行构建对象的.
有点迷惑, 感觉无从下手.
believefym 2010-04-28
  • 打赏
  • 举报
回复
方法都返回这个Test对象了
你在test方法里面对这个返回的对象进行判断一下不就行了,比如!=null,,.someValue==xxx

还用得着你构建吗?作参数的时候才需要你自己构建

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧