JUnit中什么时候使用assertTrue, assertFalse语句

Inhibitory 2013-01-05 06:51:46
在JUnit中每个test case里至少要有一个assert语句这一点没有问题。

但是在准备test case需要的文件时,例如在setBeforeClass()方法里复制文件,如果要复制的文件不存在或者复制出错,就要抛出异常,让case停掉不能继续跑。
这个时候,在setBeforeClass里使用assertTrue合理吗?
或者还是自己去写一个与assertTrue完全一样功能的代码,判断复制是否成功,如果不成功就抛出异常。
也即是说,严格的控制assert语句只能在@Test方法中使用。

我觉得没有必要,大家怎么看呢?!
...全文
6332 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
antheajie 2013-02-03
  • 打赏
  • 举报
回复
成都外企: Project Manager; senior line manager;architect;Sr. Java developer;Automated test engineer 热招,求推荐 上海外企:java hadoop;cloud computing;linux kernel;unix admin热招,求推荐 QQ:2225089357
  • 打赏
  • 举报
回复
单元测试的测试文件或者数据库的话,最好使用 Mock 工具来做,也就是假的,比如用 EasyMock 模拟一下什么的。 因为在 Unit Test 进行之前的错误而导致 UT 失败是不可容忍的,单元测试应尽量避免这种情况的发生,像在执行单元测试用例之前还需要准备一大堆的文件、数据表数据之类的。
Inhibitory 2013-01-06
  • 打赏
  • 举报
回复
引用 5 楼 yongger520 的回复:
个人觉得在setBeforeClass里使用assertTrue不太合理 准备工作没做好的话 抛异常比较好,表示错误,case没有成功运行起来 而不是case失败
背景:因为准备工作有很多步,很多都是别人写的:这些方法都是返回一个boolean,所以需要判断返回值再决定是否抛出异常
yongger520 2013-01-06
  • 打赏
  • 举报
回复
个人觉得在setBeforeClass里使用assertTrue不太合理 准备工作没做好的话 抛异常比较好,表示错误,case没有成功运行起来 而不是case失败
Inhibitory 2013-01-06
  • 打赏
  • 举报
回复
嗯,问题是现在要做的话,其实就是自己写一个与assertTrue完全一样的代码,即是说,把原来程序中assertTure换成自己写的checkTrue,其他的没有任何区别了。
aotian16 2013-01-06
  • 打赏
  • 举报
回复
在setBeforeClass里面assert确实有点奇怪
Bo6Bear 2013-01-05
  • 打赏
  • 举报
回复
看情况,我理解你的意思是说只有在做测试检查逻辑的时候才使用assertTrue,其它的时候如数据初始化过程的时候不使用assertTrue(使用其它的进行区分)。 如果只是规范上要求这样我觉得没有必要了。 如果是你想在正常的检查逻辑中进行功能的扩展,就可以进行区分。比如,统计检查的数量,修改丰富错误信息格式,写入其它日志等。

62,631

社区成员

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

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