草庐IT

java - JUnit 之间的差异?

我在IntelliJ中创建了一个JavaMaven项目(多项式操作),我想创建一个JUnit。我发现有很多类型的JUnit,例如:ArquillanJUnit4ArquillanTestNG常规JUnitJUnit3JUnit4JUnit5史波克测试NG有人可以向我解释它们之间的区别和/或哪一个是最好用的吗?谢谢! 最佳答案 ArquillianJUnit对比JUnitArquillianJUnit测试是具有一些额外功能的JUnit测试。你的测试类应该包含@RunWith(Arquillian.class)。您可以通过@Inject

java - 在 JUnit 4 Java 中使用 @BeforeClass 和使用实例或静态变量有什么区别?

我是单元测试的新手。关于JUnit4中使用@Before注解的目的。我只是不知道使用它的意义:publicclassFoodTestCase{staticprivateFoodsandwich;@BeforeClasspublicstaticvoidinitialise(){sandwich=newSandwich();}}对比publicclassFoodTestCase{staticprivateFoodsandwich=newSandwich();}有什么区别? 最佳答案 在这种情况下可能没有必要,因为初始化非常简单。如果您有

java - 如何运行所有修改过的 JUnit 测试类?

我有一个IntelliJ项目,版本在git中。如何运行自上次提交后修改过的所有JUnit测试类? 最佳答案 Projecttoolwindow中有已更改文件预定义范围您可以使用它来查看所有vcs更改的文件。从那里选择所有JUnit类,并从上下文菜单中创建JUnit运行/调试配置,它将填充类模式以自动运行。 关于java-如何运行所有修改过的JUnit测试类?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c

java - 如何在同一个 Gradle 构建中运行 JUnit5 和 JUnit4?

我阅读了有关Maven的答案,但我想知道如何在Gradle中完成此任务-ExecutingJUnit4andJUnit5testsinasamebuild.目前,我的Gradle构建只接受以下测试:导入org.junit.jupiter.api.Test;我的问题是我正在使用需要JUnit4才能运行的@RunWith但我想在JUnit5VintageEngine上执行它。如何构建才能同时运行JUnit4和JUnit5。谢谢。更新:现在有一个用于JUnit5的原生MockitoJunitJupiter-https://mvnrepository.com/artifact/org.mock

使用 JUnit 5.7 进行参数化测试:深入了解 @EnumSource

使用JUnit5.7进行参数化测试:深入了解@EnumSource        参数化测试允许开发人员使用一系列输入值高效地测试他们的代码。在JUnit测试领域,经验丰富的用户长期以来一直在努力解决实施这些测试的复杂问题。但随着JUnit5.7的发布,测试参数化进入了一个新时代,为开发人员提供了一流的支持和增强的功能。让我们深入探讨JUnit5.7为参数化测试带来的激动人心的可能性!JUnit5.7文档中的参数化示例让我们看看文档中的一些示例:@ParameterizedTest@ValueSource(strings={"racecar","radar","ablewasIereIsawe

java - 通过 Ant 运行 Junit 似乎没有使用自定义类运行器

我有一个自定义运行器,它通过套接字连接将Junit测试发送到在其他硬件上运行的Junit服务器。测试按预期运行,目标如下:但是,当我添加以下元素时...没有任何东西被传送到硬件,这让我相信我的@RunWith(com.company.name.RemoteTestCaseRunner.class)注释在的上下文中没有得到尊重。是否有什么我忘记做的事情,或者可能必须另外完成才能调用我的@RunWith注释?测试仍在运行并创建报告,某些不依赖于平台的测试会运行并通过,只是不需要与目标硬件上的服务通信的测试。更新我已经确定,在将@RunWith(Suite.class)与@SuiteClas

java - 如何对仅使用 jUnit 启动线程的方法进行单元测试?

如标题所示,我想测试这样一个方法:publicvoidstartThread(){newThread(){publicvoidrun(){myLongProcess();}}.start();}编辑:从评论来看,我想测试线程是否启动并不是很常见。所以我必须调整问题...如果我的要求是100%的代码覆盖率,我是否需要测试该线程是否启动?如果是这样,我真的需要一个外部框架吗? 最佳答案 这可以通过Mockito优雅地完成.假设该类名为ThreadLauncher,您可以确保startThread()方法调用了myLongProcess(

java - Ant JUnit ClassNotFoundException

我意识到有很多类似的问题thisone,但是在阅读了其中的大部分之后,我似乎遇到了同样的问题,但原因不同。我正在运行在我的Ant构建中执行任务并得到ClassNotFoundException.在大多数类似相关的问题中(例如上面的那个),事实证明这是作者不同程度的简单地没有正确配置JUnit类路径。尽管对我来说可能完全一样,但对这些其他问题的任何建议都对我没有用。我的项目目录结构:MyProject/src/main/java/FakeObject.java...therestofmyJavamainsourcesrc/test/javaFakeObjectUnitTest.java.

java - 如何在 JUnit 5 中使用字符串数组进行参数化

我想编写以字符串数组(String[])作为参数的JUnit5参数化测试:@ParameterizedTest@MethodSource("stringArrayProvider")voidparseFirstAndSecondInt(String[]args){Argumentsarguments=newArguments(args);assertEquals(1,arguments.getFirst());assertEquals(2,arguments.getSecond());}我不确定如何提供字符串数组的集合/流/迭代器。我没有成功尝试使用@MethodSource注释sta

java - 如何在java程序中运行外部测试用例(Class,junit)?

如何在java程序中运行外部测试用例(Class,junit)? 最佳答案 如果您想通过Java程序运行JUnit测试,您可以使用JUnitCore类JUnitCoreisafacadeforrunningtests.ItsupportsrunningJUnit4tests,JUnit3.8.xtests,andmixtures.Toruntestsfromthecommandline,run:(window)java-cp/path/to/junit.jar;/path/to/yourTextClassesorg.junit.ru