问题标签 [spring-junit]

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 投票
2 回答
5302 浏览

spring-boot - 来自 .properties 文件的 Spring Boot 单元测试 @Value 给出 NullPointerException

我正在尝试从属性文件中读取 Spring Boot 中单元测试用例的值。我有两个config.properties文件,一个在src/main/resources

和一个src/test/resources

主要应用类:

要测试的服务类:

服务测试类。我尝试了两种方法来检索src/test/resources/config.properties文件中的值;一个带有@Autowired Environment, 一个带有 @Value注释...都不起作用:

我在 StackOverflow 上的某个地方读到,为了在 Spring 测试类中自动连接组件,我需要为测试创建一个完整的上下文,所以我尝试了这个(更改注释和测试运行器):

上下文已创建,但两种方法NullPointerException再次以 s 结尾。

0 投票
0 回答
392 浏览

java - 如何基于限定符注释以编程方式自动装配 bean

在 Junit5 中,使用 Extensions 时,我们可以运行 BeforeAll 和 AfterAll 方法,我正在尝试使用 Annotations 更改测试的行为。但是,我将这些注释用作 @Qualifiers 以及 bean 初始化,并且希望能够使用测试中标识的 Annotation 来初始化 bean

我希望使用我知道SpringExtension的 Junit5的限定符注释以编程方式在运行时初始化 Bean

使用它我可以调用 bean 初始化工厂,但我不知道如何使用作为限定符的注释来初始化 bean 我有多个相同类型的 Bean,由限定符标识

我遇到的问题是

目前,我正在使用 AutoWired 静态初始化用户凭据的类型,然后基于我使用预初始化 UserCredential 的注释使用 switch case。

这个想法是有一个测试类@ExtendsWith(ResetPortal.class),然后它指示它可以使用哪种类型的用户来重置(测试前登录)。我正在使用 Qualifier Annotations 来表明这一点,然后我可以ExtensionContext从 Junit5beforeAll方法中提取它

此外,对于每种类型的用户,我都有一个UserCredential类和该类的多个 @Bean 定义。

代码

bean定义,使用自定义限定符注解User1Qualifier

我的自定义限定符如下(有多个)

现在,在测试中,我尝试使用 ResetPortal 拾取的相同注释

ResetPortal 类,由于 Junit5 初始化该类并调用它的托管实例,需要单独定义 Autowired 元素

0 投票
3 回答
3715 浏览

java - SpringBoot:以最少的配置运行 Junit 单元测试

我有一个Springboot项目,我找到了一种创建和运行简单Junit测试用例的方法,该测试用例查看存储库并获取给定实体的一些数据属性。运行的结果Junit是通过,所以没有问题。

但问题就在这里,我已经看到了很多例子,其中教程展示了Springboot项目,他们可以简单地Junit只使用@Runwith@SpringBootTest 针对特定测试类运行测试。

在我的情况下,我必须添加 3 个注释,@SpringBootTest以及@RunWith直到@ContextConfiguation(with parameters)我能够运行测试用例。

所以我的问题是我如何才能尽可能简约地运行它,(我见过的一些练习对于他们的 springboot 测试类只有一个注释)

我的Springboot测试类如下所示:

我的 Junit 课程的屏幕截图

我的目录结构如下所示:

我的项目目录结构截图

我的application.properties样子是这样的:

还有我的pom.xml文件:

那么我是否缺少 application.properties 文件中的某些内容?为了能够在我的测试类中删除“样板”注释,我应该包含哪些内容?

0 投票
1 回答
172 浏览

spring - 如何使用spring junit集成测试检查数组中的每个对象是否具有特定属性?

我正在为我的资源类中的一个方法编写一个弹簧集成测试。访问资源方法返回一个 json 响应。我想做一个断言。

以下是我的测试方法。

响应如下

我想要做的断言是数组 histogramDistributionbyCdrStatuses 中的每个对象都有字段 dateRange、total、delivered、undeliverable、expired 和 enroute 存在。我该怎么做 。我也可以使用 hamcrest 匹配器。

非常感谢任何帮助

0 投票
1 回答
115 浏览

java - 无法使用 restclienttest 模拟 resttemplate 调用

我想模拟我的RestTemplatewhich uses RestTemplateBuilder。因此,我正在使用restclienttest.

不幸的是,我无法模拟resttemplate通话。当Sup supExpected = myService.getDetails("1234")被调用时,它正在执行完整的后端调用,而不是导致我要求做的事情。

它不是生成自定义 json 字符串“SD”,而是执行实际的 GET 调用并从后端给出响应。

这是我的junit代码:

谁能帮我我的代码有什么问题?

0 投票
1 回答
690 浏览

java - JUnit 通过restTemplate 模拟外部休息呼叫

我正在尝试编写一个集成测试,其中在模拟使用 JUnit 调用外部服务器的其余调用时遇到问题。我在服务中添加了@Mock@InjectMock

服务看起来像这样。

还有另一个服务有 restTemplate 调用

这是测试场景

我正在使用 api 调用控制器,并从那里进入上述服务,该服务具有休息调用但无法模拟实际调用。有人可以在这里指导我吗?

0 投票
0 回答
277 浏览

java - 如何在 JUnit 测试用例中打印响应对象内容

我正在编写一个成功运行的 Junit 测试用例。我想要一个断言来检查响应内容是否不为空。

在此处输入图像描述

我能够看到响应对象中的内容,但不知道如何打印此内容或对此进行断言以检查是否为空。

添加 json-path jar 后,我在第 132 行收到此错误,它被终止:

任何帮助将非常感激。

在此处输入图像描述

0 投票
1 回答
67 浏览

java - 将 lombok 依赖项添加到我的项目时的 TypeNotPresentExceptionProxy

将 lombok 依赖项添加到项目时出现此错误:

并运行我的测试: