问题标签 [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.
java - 您如何断言在 JUnit 4 测试中引发了某个异常?
如何以惯用方式使用 JUnit4 来测试某些代码是否引发异常?
虽然我当然可以做这样的事情:
我记得有一个注释或一个 Assert.xyz 或其他东西,在这种情况下,JUnit 的精神远不那么笨拙,而且更符合 JUnit 的精神。
java - 2 个 JUnit 断言类之间的差异
JUnit 框架包含 2 个Assert
类(显然在不同的包中),每个类的方法看起来都非常相似。谁能解释这是为什么?
java - 使用 JUnit 4 的预期异常机制导致意外行为的原因?
我正在尝试测试特定方法是否会从方法中引发预期的异常。根据 JUnit4 文档和这个答案,我将测试写为:
但是,此代码未通过 JUnit 测试,将抛出的(和预期的)异常报告为错误。
我正在测试的方法在正文中只有这个:
此外,以下测试通过:
这意味着实际抛出了预期的异常。
我实际上打算更改方法以实际做某事,而不是仅仅抛出异常,但这让我很好奇是什么导致了问题,以免将来再次发生。
已进行以下检查:
- 导入测试用例的 CannotUndoException 是正确的
- JUnit 第 4 版是我的类路径中唯一的版本
- 干净和构建的 Eclipse 工作区并没有改变结果
我使用的是 JUnit 4.1,在同一个测试中我使用的是 Mockito。
什么可能导致错误失败?
junit - 如何让 Junit 4 忽略基本测试类?
我有一个用于许多测试的基类,这些测试有一些他们都需要的辅助方法。
它本身没有任何测试,但 JUnit(在 eclipse 中)正在调用它的测试运行器并抱怨没有测试方法。
我怎样才能让它忽略这个类?
我知道我可以添加一个dummyTest
可以解决问题的方法,但它也会出现在所有子类中。
建议?
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 测试,这可能是问题吗?
java - 更改参数化测试的名称
在 JUnit4 中使用参数化测试时,有没有办法设置我自己的自定义测试用例名称?
我想将默认值更改为[Test class].runTest[n]
有意义的东西。
unit-testing - JUnit 断言扩展
我经常为我的 JUnit 测试创建自定义断言方法。例如:
我想知道是否有任何像样的第三方库可以提供比 JUnit 默认提供的更广泛的断言。
我正在使用 JUnit 4。
java - Junit4 + Spring 2.5:断言抛出“NoClassDefFoundError”
我一直在用 Spring 在 Junit4 中编写测试代码,我得到了这个有趣的行为:
如果我的测试是这样通过的,那么一切都很好:
但是,如果我的测试失败:
然后,我收到的不是测试失败,而是丑陋而神秘的堆栈跟踪,就是这样:
抱歉这个丑陋的转储,但它是我必须解释问题的唯一数据(我“粘贴”它以提高可读性)
我真的很疑惑,有没有人遇到过这种问题?提前致谢!
java - 完成 JUnit 4 动态套件的细节
嗨——我想将 JUnit 测试自动扫描到套件中,作为我持续构建的一部分,所以我从 JUnit 的套件中派生了一个运行器,它可以在一个包中找到所有测试类。跑步者工作得很好,但结果显示低于预期。
我的测试支持包中有一个类,我的跑步者带有 @RunWith 注释。跑步者通过读取一个属性来获取被测试的包。设置属性并告诉 JUnit 运行带注释的类,然后执行该包中的所有测试。在 Ant 和 IntelliJ 中,套件的名称报告为具有 @RunWith 注释的类的名称。我的跑步者对 ParentRunner.getName() 有一个覆盖,它返回被测包的名称。我验证了字符串进入了跑步者的描述对象。我错过了什么?
环境:
- JUnit:4.5
- 蚂蚁:1.7.0
- IntelliJ IDEA:8.1
感谢您提供的任何方向。
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 的东西。
想法?