草庐IT

Junit-Tests

全部标签

java - 如何打开包并仅要求依赖于测试范围模块以进行 JUnit 测试

我正在使用类路径将一个jar项目从Java10迁移到使用Java9拼图模块的Java11。该项目有JUnit5测试。测试依赖项由Maven在测试范围内提供。模块被其他项目使用时,如何让所有包都打开测试但不打开?jar项目只是为其他项目(因此不需要主类)提供一些类(如实用项目)。该项目在/src/main/java/a/b/c/中获得了5个包。使用这个jar的项目应该可以访问其中的2个。其他3个仅供内部使用(由可访问的使用)。测试位于/src/test/java/a/b/c/。这些测试具有在测试范围内提供的依赖项(JUnit、mockito、junt-params),因为测试与使用此ja

java - 测试在 JUnit 4 而不是 JUnit 5 下运行——编译干净,但执行 0 个测试

任何人都可以在几分钟内轻松重现此问题。基本Mavenquickstart项目借助IntelliJ2018.3和Maven3.6.0,我使用Maven原型(prototype)创建了一个全新的项目maven-archetype-quickstart1.4版。Java11在新项目的POM文件中,我将maven.compiler.source和maven.compiler.target的属性从1.7更改为11,适用于Java11.0.2我目前正在使用,Zulu来自AzulSystems.UTF-81111在IntelliJ的Maven面板上,我运行了clean和install生命周期事件。在

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.