问题标签 [junit-jupiter]

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 投票
1 回答
702 浏览

java - JUnit 5 测试没有 SpringBootApplication 的子项目

特别是我有一个属于多项目构建的子项目。
该子项目没有SpringBootApplication自己的。
经过一些研究,我发现在 ClassPath@SpringBootConfiguration中搜索了
但是现在我无法进一步了解,因为找不到DataSource在中配置的那个。application.yml

抛出以下异常:

我的期望是看到输出:DataSource: HikariDataSource (HikariPool-1)正如关于 Spring Boot 2 和 Hikari 的指南中所解释的那样。
但是,本指南已经对 SpringBootApplication 类中的“测试”感到满意。

我的错在哪里?

子项目的结构如下:

子项目的build.gradle:

主项目中的 build.gradle 包含此依赖项部分:

application.yml 内容:

JUnit 测试:

@SpringBootConfiguration最后是带有注释的空配置:

0 投票
1 回答
589 浏览

java - 为什么测试类的属性在 2 个测试之间变为空?

上下文:我试图创建一个代表我读者的用户指南的 junit 测试。所以为了做到这一点,我创建了一个 init 方法,一个测试我的假设的测试:资源被初始化,创建一个阅读器,最后读取文件内容。

(我的junit测试的第二个目标是通过假设和顺序测试获得更多经验)

我的问题:在创建和阅读之间,我的阅读器(这是我的测试类的一个属性)变为空(参见私有 BeanioReader 阅读器)。

TECHNOS => org.junit.jupiter:5.4.1 + beanio:2.1.0 + commons-lang3:3.8.1 + jdk1.8.0_102

这是我的读者和相应的junit测试。

我希望明白为什么...

测试结果,BeanIoReaderTest:

安慰:

0 投票
5 回答
5362 浏览

java - 我的 PITEST 不会运行。覆盖生成minion异常退出。我需要帮助才能正确配置我的 pom.xml

运行mvn org.pitest:pitest-maven:mutationCoverage时出现如下错误( Environment: Windows 10, Maven 3.6.1, Java 11, junit-jupiter 5.4.1, pitest 1.4.7

参考:https ://github.com/ooroor/hellostrangeworld/blob/make_pitest_work/pom.xml

0 投票
2 回答
6450 浏览

spring-boot - Junit5-木星所有测试套件@BeforeAll @AfterAll 不工作

之前和之后的方法在 JUnitPlatform 中不起作用。

代码如下。

我只想在方法之前和之后运行。

谢谢

0 投票
1 回答
4214 浏览

kotlin - NonExistentClass 无法转换为 Annotation - app:kaptDebugAndroidTestKotlin

我想使用 JUnit5 测试一个类,但在 gradle 运行 app:kaptDebugAndroidTestKotlin 任务时我遇到了问题。

我已经尝试了以下链接中的解决方案,但到目前为止没有任何帮助:

NonExistentClass 不能转换为 Annotation

错误:不兼容的类型:NonExistentClass 无法转换为注解 @error.NonExistentClass()

我的项目 build.gradle 文件:

我的模块 build.gradle 文件:

和我的 gradle.properties 文件:

我尝试运行测试,但编译时得到以下内容:

C:\project_path\app\build\tmp\kapt3\stubs\debugAndroidTest\com\package\test\module\search\SearchPresenterTest.java:20:错误:不兼容的类型:NonExistentClass 无法转换为注解@error.NonExistentClass()

build 文件夹下的文件包含以下内容:

而原始的 kotlin 测试文件类似于以下几行:

0 投票
1 回答
55 浏览

spring-el - 如何为多个系统属性执行多个逻辑端?

我正在尝试检查是否存在多个系统属性EnabledIf

当我做一个单一的系统属性时,它似乎工作。

但我因多个系统属性而失败。

我怎样才能做到这一点?

0 投票
0 回答
34 浏览

java - JUnit5(聚合器)提供旧的依赖项

我正在使用JUnit5 aggregator

但是当我显示我的依赖树时,我看到了旧版本的 api:

但为什么?为什么 junit-jupiter:jar:5.5.1 为我提供 junit-jupiter-api 的旧版本 (5.3.2)?我该如何解决?

0 投票
1 回答
929 浏览

java - 春天。JUnit5。网络客户端。如何测试异步调用

我有一个带有服务的 Spring Boot 项目,它基本上调用了一个私有方法,它执行以下操作:

然后在上面放一个subscribe(...),它只是记录结果。

一切正常,但现在我需要对此进行测试,这就是事情开始变得有趣的地方。

到目前为止,我已经尝试过 MockServer、okhttp、Spring 的 WebMockServer(或其他东西),只有 MockServer 愿意在某些时候正常工作,而 okhttp 最新想要 junit.rules.*(实现起来有问题),WebMockServer 特别想要休息模板。

谷歌确实给出了一些例子,其中一个 webClient 逻辑方法没有被.exchange()调用,从而有机会.block()在测试中调用,但我不愿意仅仅为了解决异步调用而公开一个私有方法。

目前,我正在努力使用 Mockito 的 DEEP_STUB 策略来模拟实际的 webClient 链,但这无法从盒子中工作,我试图在编写这个问题时让它工作。

所以问题是 - 有没有合适的方法来测试一个带有异步调用的 webClient (可能是一个 MockServer 验证超时或什么的)?

0 投票
1 回答
201 浏览

java - 是否可以从生产代码访问 JUnit @TempDir-path?

考虑一个 Spring (Boot) 应用程序,该应用程序在调用其服务时将文件生成到输出文件夹。我正在尝试使用 JUnit Jupiter 测试这种功能,但我希望在测试后丢弃生成的文件,这就是我目前尝试使用@TempDir. 它似乎完全符合我的要求,但我正在努力指示我的 Spring 上下文将生成的文件发送到临时目录。

我的服务.java

MyServiceTest.java

因此,我的问题是,是否有一种干净的方法可以将myservice.output-directory属性设置为临时目录的绝对路径?

0 投票
1 回答
249 浏览

spring - SpringBoot Junit5在重命名包含@SpringBootApplication注释的类的包时失败

将 @SpringBootApplication 移动到不同的包时,我正在努力使用 JUnit 5。

我已经使用 Maven 和 Eclipse 设置了一个新的 SpringBoot 项目(2.2.1.RELEASE)(必须从“Eclipse Photon”升级它以支持 SpringBoot-Release

我的包布局如下所示:

持有@SpringBootApplication 的类是:

测试是这样的:

有了这个配置,一切都很好,“StartSamples”按预期工作并且aqlso SimpleTest。

但是当将“StartSamples”移动到不同的包时(例如“com.package.sample.start”对我来说更有意义 - “StartSamples”仍然可以,但“SimpleTest”不会失败也不会成功 - 测试似乎没有被执行. 我看到一条消息:类路径资源[com/package/sapmle/appl1/dbaccess/SimpleTest-context.xml] 不存在类路径资源[com/package/sapmle/appl1/dbaccess/SimpleTestContext.groovy] 不存在.SimpleTest]:SimpleTest 不声明任何使用@Configuration 注解的静态、非私有、非最终、嵌套类。

我还发现:使用 SpringBootContextLoader 没有为测试类 [com.package.sample.appl1.dbaccess.SimpleTest] 找到 @ContextConfiguration 和 @ContextHierarchy

所以我将@ContextConfiguration 定义为“SimpleTest”,然后它就起作用了。但我完全不明白为什么 @SpringBootApplication 的移动确实改变了这种行为。

再次尝试设置这个项目时,我最终得到“没有使用测试运行器'JUnit 5'找到测试”,也找不到任何原因。我用当前的方法重新开始并到达这里。并且不知道是什么给了我错误 - 对于任何一个问题。

任何解释都将不胜感激。我现在尝试了很多小时在互联网上找到一些东西——但我只找到了“试试这个”、“试试那个”这样的建议,但对理解没有帮助。所以任何帮助表示赞赏。