在Eclipse中,如何在失败时看到Assert.assertEquals的输入?

nes*_*983 3 eclipse assert junit4

我不是一个Eclipse大师,所以请原谅我的笨拙.

在Eclipse中,当我调用Assert.assertEquals(obj1,obj2)并且失败时,如何让IDE向我显示obj1和obj2?

我正在使用JExample,但我想这不应该有所作为.


编辑:这是我看到的:
http://img86.yfrog.com/img86/3002/jexample.png.

dav*_*xxx 6

  1. 当您的对象有点复杂时,与故障跟踪的比较并不是一件容易的事.
  2. 如果尚未重新定义toString(),则与调试器进行比较非常有用.它作为解决方案仍然非常繁琐,因为你应该用双眼检查每一个物体.

Junit Eclipse插件在出现故障时提供了一个选项:"将Real与Expected TestResult进行比较".该视图与经典内容比较工具非常接近: 与String对象比较


问题是它只有在你assertEquals()String对象写的时才可以使用(在截图中,我们可以看到角落里的选项没有提议没有String类): 与没有String对象的比较

您可以toString()在断言中使用对象,但这不是一个好的解决方案:

  • 首先,你toString()equals(Object)... 相关联.修改一个必须要求修改另一个.
  • 其次,语义不再受到尊重.toString()应该返回一个有用的方法来调试一个对象的状态,而不是在Java语义(equals(Object))中标识一个对象.

据我所知,我认为JUnit Eclipse插件错过了一个功能.
当比较失败时,即使我们比较不是String对象,它也应该提供依赖于它们的toString()方法的两个对象的比较.
它可以提供一种比较两个不等于对象的最小视觉方式.
当然,由于equals(Object)不一定toString()与之相关,应该用我们的眼睛研究突出的差异,但它已经是一个非常好的基础,无论如何,它比没有比较工具好得多.