Spring Boot 集成测试不读取属性文件

2024-01-01

我想创建集成测试,其中 Spring Boot 将使用从 .properties 文件读取值@Value注解。
但每次我运行测试时,我的断言都会失败,因为 Spring 无法读取该值:

org.junit.ComparisonFailure: 
Expected :works!
Actual   :${test}

My test:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {WebTests.ConfigurationClass.class, WebTests.ClassToTest.class})
public class WebTests {
    @Configuration
    @ActiveProfiles("test")
    static class ConfigurationClass {}

    @Component
    static class ClassToTest{
        @Value("${test}")
        private String test;
    }

    @Autowired
    private ClassToTest config;

    @Test
    public void testTransferService() {
        Assert.assertEquals(config.test, "works!");
    }
}

src/main/resource 包下的 application-test.properties 包含:

test=works! 

这种行为的原因是什么?我该如何解决它?
非常感谢任何帮助。


您应该使用 @PropertySource 或 @TestPropertySource 加载 application-test.properties

@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(locations="classpath:application-test.properties")
@ContextConfiguration(classes = {WebTests.ConfigurationClass.class, WebTests.ClassToTest.class})
public class WebTests {

}

欲了解更多信息:看看这个覆盖 Junit Test 中的默认 Spring-Boot application.properties 设置 https://stackoverflow.com/questions/29669393/override-default-spring-boot-application-properties-settings-in-junit-test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 集成测试不读取属性文件 的相关文章

  • 如何打印整个字符串池?

    我想打印包含文字的整个字符串池String使用添加的对象intern 就在垃圾收集之前 JDK有没有隐式的方法来进行这样的操作 我们如何检查字符串池 EDIT The comment suggests that there may be a
  • 将链接对象转换为流或集合

    我想迭代堆栈跟踪 堆栈跟踪由可抛出对象组成 其 getCause 返回下一个可抛出对象 最后一次调用 getCause 返回 null 示例 a gt b gt null 我尝试使用 Stream iterable 这会导致 NullPoi
  • 如何将 Spotlight for Help 插入本地化的 macOS 应用程序?

    我正在 macOS 上使用 Swing GUI 框架实现 Java 应用程序 当使用system外观和感觉以及screen菜单栏 Swing 自动插入一个搜索栏 called 聚光灯寻求帮助 https developer apple co
  • Java 变量的作用域

    我不明白为什么这段代码的输出是10 package uno public class A int x 10 A int x 12 new B public static void main String args int x 11 new
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 场景生成器删除 fxml 文件中的导入

    我使用场景构建器 Gluon Scene Builder JavaFX Scene Builder 8 1 1 来创建应用程序的 UI 并使用 Eclipse 开发 JavaFX 现在 每次我在场景生成器中保存某些内容时 它都会从 fxml
  • 如何将 XMP XML 块序列化为现有的 JPEG 图像?

    我有许多 JPEG 图像 其中包含损坏的 XMP XML 块 我可以轻松修复这些块 但我不确定如何将 固定 数据写回图像文件 我目前正在使用 JAVA 但我愿意接受任何能让这项任务变得容易的事情 这是目标关于 XMP XML 的另一个问题
  • 使用 java 按电子邮件发送日历邀请

    我正在尝试使用 java 发送每封电子邮件的日历邀请 收件人收到电子邮件 但不会显示接受或拒绝的邀请 而是将该事件自动添加到他的日历中 我正在使用 ical4j jar 构建活动 邀请 private Calendar getInvite
  • 想要开发像 Facebook 这样的网站 - 处理数百万个请求 - 高性能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想用 Java 开发一个像 Fac
  • 尝试在没有 GatewayIntent 的情况下访问消息内容

    我希望每当我写一条打招呼的消息时 机器人都会在控制台中响应一条消息 但它只是给我一个错误 JDA MainWS ReadThread WARN JDA Attempting to access message content without
  • 具有多种值类型的 Java 枚举

    基本上我所做的是为国家编写一个枚举 我希望不仅能够像国家一样访问它们 而且还能够访问它们的缩写以及它们是否是原始殖民地 public enum States MASSACHUSETTS Massachusetts MA true MICHI
  • 打印包含 JBIG2 图像的 PDF

    请推荐一些库 帮助我打印包含 JBIG2 编码图像的 PDF 文件 PDFRenderer PDFBox别帮我 这些库可以打印简单的 PDF 但不能打印包含 JBIG2 图像的 PDF PDFRenderer尝试修复它 根据 PDFRedn
  • 为什么 ConcurrentHashMap::putIfAbsent 比 ConcurrentHashMap::computeIfAbsent 更快?

    使用 ConcurrentHashMap 我发现computeIfAbsent 比putIfAbsent 慢两倍 这是简单的测试 import java util ArrayList import java util List import
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • 在 AKKA 中,对主管调用 shutdown 是否会停止其监督的所有参与者?

    假设我有一位主管连接了 2 位演员 当我的应用程序关闭时 我想优雅地关闭这些参与者 调用supervisor shutdown 是否会停止所有参与者 还是我仍然需要手动停止我的参与者 gracias 阻止主管 https github co
  • 使用 Java 从 S3 上的文件在 S3 上创建 zip 文件

    我在 S3 上有很多文件 需要对其进行压缩 然后通过 S3 提供压缩文件 目前 我将它们从流压缩到本地文件 然后再次上传该文件 这会占用大量磁盘空间 因为每个文件大约有 3 10MB 而且我必须压缩多达 100 000 个文件 所以一个 z
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • struts 教程或示例

    我正在尝试在 Struts 中制作一个登录页面 这个想法是验证用户是否存在等 然后如果有错误 则返回到登录页面 错误显示为红色 典型的登录或任何表单页面验证 我想知道是否有人知道 Struts 中的错误管理教程 我正在专门寻找有关的教程 或
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • 使用 eclipse IDE 配置 angularjs

    我想开始使用 AngularJs 和 Java Spring 进行开发 我使用 Eclipse 作为 IDE 我想配置我的 Eclipse 以使这些框架无缝工作 我知道我可能要求太多 但相信我 我已经做了很多研究 你们是我最后的选择 任何帮

随机推荐

  • 在 Docker 容器中运行图形进程,分离并重新连接到正在运行的 GUI

    假设我在 Python 中进行了一些需要很长时间的计算 并且是从 Spyder IDE 运行的 因此可以轻松检查结果并用于以后的进一步工作 我想在服务器计算机上托管的 Docker 容器内运行 Spyder 进程 即与我坐在前面的计算机不同
  • 从 Angular2 应用程序链接到全局节点模块文件夹

    我希望有一个集中的 Node 模块文件夹 使用 npm update g 保存到 C 盘 而不是应用程序中包含的通常的本地文件夹 因为 Angular2 CLI 在本地文件夹中安装了 125mb 的 Node 模块 因此 在打字稿文件中 我
  • Python 3.5 - ssl.SSLEOFError:EOF 发生违反协议(_ssl.c:645)

    我在用Keras并尝试加载mnist数据集 网站链接为 https s3 amazonaws com img datasets mnist pkl gz https s3 amazonaws com img datasets mnist p
  • 用于安全创建临时目录的 POSIX 函数是什么?

    用于创建临时目录的任务 tmp 人们会如何选择mkdtemp mkstemp等等 用于可移植代码 我认为您需要在其他用户可能具有写入权限的目录中创建一个临时目录 作为管理员 您应该进行设置 以便每个用户都有自己的TMPDIR 例如与pam
  • C++ std::map 命名要求分配器感知容器

    目前我正在尝试将一些 C 的命名需求转换为 C 20 概念 https godbolt org z EdY5d6319 https godbolt org z EdY5d6319仍然处于高度WIP状态 然而 我遇到了一个问题 鉴于最终的 C
  • 使用文件“php.ini”关闭显示错误

    我正在尝试关闭我网站上的所有错误 我已经遵循了有关如何执行此操作的不同教程 但我不断收到阅读和打开错误消息 我有什么遗漏的吗 我在我的中尝试过以下操作php ini file Error display display startup er
  • SwiftUI 从另一个视图重新排序列表动态部分

    我有一个简单的List与存储在内部的部分ObservableObject 我想从另一个角度重新排序它们 这是我的代码 class ViewModel ObservableObject Published var sections S1 S2
  • 基本的 Spring Boot 应用程序无法正常工作,显示:无法从进程 xxxx 刷新实时数据

    我是 Spring Boot 的初学者 我初始化了一个新项目并尝试运行它 但它没有成功运行 当我将其作为 Spring Boot 应用程序运行时 它就会开始执行 在底部编译器 状态栏中 它显示处理和重试 它最多运行 10 次并抛出以下错误
  • C++ 中的十进制到 Unicode Char

    输出时如何将十进制数 例如 225 转换为其对应的 Unicode 字符 我可以将 ASCII 字符从十进制转换为如下字符 int a 97 char b a cout lt lt b lt lt endl 它输出字母 a 但当我使用数字
  • 在Python中将整数转换为十六进制

    在Python中我想转换整数3892转换为具有给定格式和结果的十六进制代码 x00 x00 x0F x34 如何才能实现这一目标 您正在转换为数字的二进制表示形式 而不是十六进制表示形式 尽管 Python 会将字节显示为十六进制 使用st
  • 尝试上传使用 Visual Studio for Apache Cordova 构建的应用程序时出现错误 ITMS-90161

    我们刚刚开始使用 Visual Studio Tools for Apache Cordova 创建跨平台移动应用程序 我按照中描述的程序进行操作安装 iOS 构建工具 https msdn microsoft com en us libr
  • 以 PHP 形式输入和验证自定义日期时间的最佳方法

    这是前端可用性和 PHP DATE TIME 验证方面的双重问题 我正在为一位客户开发一个网站 他想添加他完成项目的日期 以便项目可以按该顺序列出 他将是唯一使用管理界面的人 所以我希望它尽可能简单 我将日期作为 DATE TIME 存储在
  • 具有多个条件的数据表选择

    我有一个包含 4 列 A B C 和 D 的数据表 因此 A B 和 C 列的值的特定组合在数据表中是唯一的 客观的 对于给定的 A B 和 C 列值组合 查找 D 列的值 我想循环数据行集应该可以做到 有没有办法使用 Datatable
  • Docker BuildX 映像未显示在 docker image ls 中

    我目前正在尝试使用 BuildKit BuildX 构建多平台映像 x86 64 arm64 armv7 armv6 并且似乎构建成功 但我似乎找不到映像所在的位置 它与我之前的 x86 64 版本相比并没有显示出任何变化 并且当尝试码头工
  • 在 JavaScript 中,我如何使用数组来增加字符串以创建循环?

    我正在尝试制作一个网页 每次刷新时其壁纸都会发生变化 我希望它在每次刷新页面时显示数组中的下一个图像 因此 每次刷新都会遍历列表直至结束 然后重新开始 现在我正在使用一个数组并使用随机索引访问它 但我需要使用每次增加 1 的索引来访问它 一
  • iOS 8.4 CFNetwork SSL 握手失败 (-9850)

    自从我将 xcode 更新到 6 4 并将模拟器更新到 ios 8 4 后 我的 ssl 握手代码失败了 错误是 CFNetwork SSLHandshake 失败 9850 相同的代码在 ios 8 3 模拟器上成功执行 ssl 握手 我
  • 如何返回到控制台中行的开头?

    如何返回到行的开头并覆盖控制台上已输出的内容 以下似乎不起作用 System out print mystuff r 我怀疑您的光标正在移动到该行的前面 您已有的文本不会消失 因为您没有用任何内容覆盖它 您可以输出空格来空白该行 然后添加另
  • 无法读取 Web API 操作过滤器内容

    相关问题 Web API 操作参数间歇性为空 https stackoverflow com questions 18256817 web api action parameter is intermittently null and ht
  • GDB 报告 c++ 对象构造函数中参数的地址错误

    我遇到了 GDB 将字符串作为参数传递给构造函数的奇怪行为 代码工作正常 但是当我在调试器中单步执行时 GDB 似乎认为我的参数位于不同的地址 有谁知道这是怎么回事 这是我可以创建的最简单的程序来演示该问题 jwcacces neptune
  • Spring Boot 集成测试不读取属性文件

    我想创建集成测试 其中 Spring Boot 将使用从 properties 文件读取值 Value注解 但每次我运行测试时 我的断言都会失败 因为 Spring 无法读取该值 org junit ComparisonFailure Ex