问题标签 [junit4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
34 回答
1581372 浏览

java - 您如何断言在 JUnit 4 测试中引发了某个异常?

如何以惯用方式使用 JUnit4 来测试某些代码是否引发异常?

虽然我当然可以做这样的事情:

我记得有一个注释或一个 Assert.xyz 或其他东西,在这种情况下,JUnit 的精神远不那么笨拙,而且更符合 JUnit 的精神。

0 投票
6 回答
39160 浏览

java - 2 个 JUnit 断言类之间的差异

JUnit 框架包含 2 个Assert类(显然在不同的包中),每个类的方法看起来都非常相似。谁能解释这是为什么?

我指的类是:junit.framework.Assertorg.junit.Assert

0 投票
4 回答
3142 浏览

java - 使用 JUnit 4 的预期异常机制导致意外行为的原因?

我正在尝试测试特定方法是否会从方法中引发预期的异常。根据 JUnit4 文档和这个答案,我将测试写为:

但是,此代码未通过 JUnit 测试,将抛出的(和预期的)异常报告为错误。

我正在测试的方法在正文中只有这个:

此外,以下测试通过:

这意味着实际抛出了预期的异常。

我实际上打算更改方法以实际做某事,而不是仅仅抛出异常,但这让我很好奇是什么导致了问题,以免将来再次发生。

已进行以下检查:

  • 导入测试用例的 CannotUndoException 是正确的
  • JUnit 第 4 版是我的类路径中唯一的版本
  • 干净和构建的 Eclipse 工作区并没有改变结果

我使用的是 JUnit 4.1,在同一个测试中我使用的是 Mockito。

什么可能导致错误失败?

0 投票
6 回答
50588 浏览

junit - 如何让 Junit 4 忽略基本测试类?

我有一个用于许多测试的基类,这些测试有一些他们都需要的辅助方法。

它本身没有任何测试,但 JUnit(在 eclipse 中)正在调用它的测试运行器并抱怨没有测试方法。

我怎样才能让它忽略这个类?

我知道我可以添加一个dummyTest可以解决问题的方法,但它也会出现在所有子类中。

建议?

0 投票
9 回答
28693 浏览

ant - 使用 ant 运行“纯”JUnit 4 测试

我们已经迁移到 JUnit 4 和 ant 1.7

测试在 Eclipse 中运行良好,但在使用 ant 运行测试时会忽略注释。

根据 Ant junit 任务文档

它也适用于 JUnit 4.0,包括仅使用注释而不使用 JUnit4TestAdapter 的“纯”JUnit 4 测试。

但是文档没有详细说明它应该如何配置。

junit任务是否需要任何特殊设置?我错过了什么吗?我们有扩展 TestCase(即 3.8 风格)的测试和“纯”Junit 4 测试,这可能是问题吗?

0 投票
13 回答
88678 浏览

java - 更改参数化测试的名称

在 JUnit4 中使用参数化测试时,有没有办法设置我自己的自定义测试用例名称?

我想将默认值更改为[Test class].runTest[n]有意义的东西。

0 投票
4 回答
1923 浏览

unit-testing - JUnit 断言扩展

我经常为我的 JUnit 测试创建自定义断言方法。例如:

我想知道是否有任何像样的第三方库可以提供比 JUnit 默认提供的更广泛的断言。

我正在使用 JUnit 4。

0 投票
3 回答
2598 浏览

java - Junit4 + Spring 2.5:断言抛出“NoClassDefFoundError”

我一直在用 Spring 在 Junit4 中编写测试代码,我得到了这个有趣的行为:

如果我的测试是这样通过的,那么一切都很好:

但是,如果我的测试失败:

然后,我收到的不是测试失败,而是丑陋而神秘的堆栈跟踪,就是这样:

http://pastie.org/429912

抱歉这个丑陋的转储,但它是我必须解释问题的唯一数据(我“粘贴”它以提高可读性)

我真的很疑惑,有没有人遇到过这种问题?提前致谢!

0 投票
2 回答
1515 浏览

java - 完成 JUnit 4 动态套件的细节

嗨——我想将 JUnit 测试自动扫描到套件中,作为我持续构建的一部分,所以我从 JUnit 的套件中派生了一个运行器,它可以在一个包中找到所有测试类。跑步者工作得很好,但结果显示低于预期。

我的测试支持包中有一个类,我的跑步者带有 @RunWith 注释。跑步者通过读取一个属性来获取被测试的包。设置属性并告诉 JUnit 运行带注释的类,然后执行该包中的所有测试。在 Ant 和 IntelliJ 中,套件的名称报告为具有 @RunWith 注释的类的名称。我的跑步者对 ParentRunner.getName() 有一个覆盖,它返回被测包的名称。我验证了字符串进入了跑步者的描述对象。我错过了什么?

环境:

  • JUnit:4.5
  • 蚂蚁:1.7.0
  • IntelliJ IDEA:8.1

感谢您提供的任何方向。

0 投票
1 回答
2028 浏览

debugging - 调试器不适用于 JMockit

希望这里有一个简单的问题......

我正在使用 RAD 7.5.2,并且正在编写 Junit 测试。我用 JUnit 3 写得很好,然后我想模拟一些函数调用。所以我加载了 jmockit 0.9.7 和 Junit 4.6。我还包括 -javaagent:jmockit.jar 作为 VM 参数。

当我“运行为 Junit 测试”时,它完全没有问题(至少,我在输出中看不到任何问题)。Junit 的输出很好,没有错误转储到控制台。

当我“调试为 Junit 测试”时,它不起作用。它让我陷入:

InstrumentationImpl.class --> 找不到源

......当我点击继续......

NativeMethodAccessorImpl.class --> 找不到源

...当我点击继续...

JUnit 在此之后结束。它将以下内容转储到控制台:


在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl) 的线程“main”java.lang.reflect.InvocationTargetException 中的异常.java:43) at java.lang.reflect.Method.invoke(Method.java:618) at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:160) 原因:java.lang.UnsatisfiedLinkError: sun/instrument/ InstrumentationImpl.redefineClasses0([Ljava/lang/instrument/ClassDefinition;)V at sun.instrument.InstrumentationImpl.redefineClasses(InstrumentationImpl.java:98) at mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:197) at mockit.internal。重新定义引擎。在 mockit.internal.RedefinitionEngine.redefineMethods(RedefinitionEngine.java:116) 在 mockit.internal.RedefinitionEngine.setUpInternalStartupMock(RedefinitionEngine.java:53) 在 mockit.internal.Startup.loadInternalStartupMocks(Startup.java) 的 redefineMethods(RedefinitionEngine.java:184) :123) 在 mockit.internal.Startup.initialize(Startup.java:110) 在 mockit.internal.Startup.premain(Startup.java:97) ... 还有 5 个

致命错误:处理 -javaagent 失败


我可以毫无问题地在我的测试上运行 JUnit 3 和 JUnit 4,当我使用 -javaagent:jmockit.jar (使用调试器;它们本身很好)时,事情变得丑陋,我必须这样做使用 jmockit 的东西。

想法?