java - 微简介|配置 - 使用动态值进行测试

标签 java jboss-arquillian apache-tomee microprofile tomee-8

我在我的应用程序中使用 Microprofile Config(@Inject,而不是 ConfigProvider)。我有一个配置,它采用不同的分支来获取不同的值。为了测试 (Arquillian) 我的代码中的所有路径,我需要能够在运行时更改此值。有人可以提供如何实现这一目标的提示吗?我的属性是使用系统属性设置的,但我愿意接受有关如何处理此问题的想法。

最佳答案

您可以注册一个可以轻松配置的ConfigSource。 你可以看看我为 mp-config TCK 本身写的一篇: https://github.com/eclipse/microprofile-config/blob/master/tck/src/main/java/org/eclipse/microprofile/config/tck/configsources/ConfigurableConfigSource.java

要将此 ConfigSource 添加到您的 Arquillian @Deployment,请检查此测试: https://github.com/eclipse/microprofile-config/blob/1499b7bf734eb1710fe3b7fbdbbcb1ca0983e4cd/tck/src/main/java/org/eclipse/microprofile/config/tck/ConfigAccessorTest.java#L52

重要的几行是:

.addClass(ConfigurableConfigSource.class)
.addAsServiceProvider(ConfigSource.class, ConfigurableConfigSource.class)

然后调整值

ConfigurableConfigSource.configure(config, "my.config.entry", "some new value");

关于java - 微简介|配置 - 使用动态值进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54582160/

相关文章:

java - 在类方法中包含 this 关键字是个好习惯吗?

java - Selenium 文件下载测试

jakarta-ee - 类格式错误 : Absent Code attribute in method that is not native or abstract in class file javax/transaction/SystemException

spring-boot - 如何使 Spring Boot 应用程序可部署在 TomEE 7.x 上?

java - 如何在 Hibernate 中使用 TomEE

jsf - TomEE + Omnifaces - 测试 - 严重 : CDI Beans module deployment failed

java - 在 Canvas 上缩放文本大小

java - Docker/Marathon 上的 Spring Boot 数组环境变量

java - getResource 在一台服务器上返回 null,但在另一台服务器上则不返回 null

java - 在 Arquillian 测试类中注入(inject)始终为 null