【发布时间】:2010-12-29 22:20:14
【问题描述】:
我刚开始使用 Eclipse,所以请放轻松 ;)。但是,当尝试调试 JUnit 测试用例时,我得到一个对话框,指出当我在测试方法的代码中到达这一行时找不到源:
Assert.assertEquals(1, contents.size());
我知道我可能应该去尝试从某个地方下载源代码,但我真的不想这样做,因为我对进入 JUnit 代码没有兴趣。我有 JUnit 运行时 jar,那么为什么 Eclipse 期望我拥有所有引用的工具源代码来调试我自己的代码(似乎有点傻)?
我的主要问题是,当源不可用时,我如何告诉 Eclipse 跳过此对话框并允许我继续调试自己的代码?
[编辑]
我已经隔离了造成这种情况的原因。当内部 JUnit 代码抛出异常时,Eclipse 似乎认为它需要源代码。一般来说,有没有办法告诉它它没有,而是让它抛出某种错误对话框?
【问题讨论】:
-
我认为在 junit 方法上导航时应该使用“跳过”,否则 Eclipse 将无法警告您没有来源。在这种情况下,您可以继续“步入”contents.size(),但在实际进入 Assert.assertEquals 之前,请改为按“步入”。
-
这正是我正在做的——使用 step-over (f6),当 JUnit 代码抛出异常时,它仍然会弹出这个源代码对话框。
-
嗯,我无法在我的 Eclipse 环境中观察到您的情况。您使用哪个版本?另外,您是使用 Eclipse 内部的 junit 库,还是提供外部的、您自己的 junit.jar 文件?
-
我使用内置 JUnit 4.7 的 Eclipse 3.4.2。
-
只有一件事我不太明白,Eclipse 已经捆绑了 Junit 源代码......不知道为什么它一开始就找不到源代码。另外,当您说“内部 JUnit 代码引发异常”时,是指未满足 assertEquals 条件还是发生了实际错误?