gpt4 book ai didi

spring-boot - 访问 Junit ClassRule 中的 spring-boot application.properties 元素

转载 作者:行者123 更新时间:2023-12-05 07:27:54 24 4
gpt4 key购买 nike

我想在 junit 静态类规则中访问资源/属性文件元素(在下面的代码中它的 cardEventTopiccardEventErrorTopic 常量)。有什么办法可以做到这一点?由于元素已经存在于属性文件中,我不想将它们作为静态常量放在测试文件中。此外,@Value("${}") 不适用于静态上下文。如果有办法使这项工作,请提供任何帮助。

@RunWith(SpringRunner.class)
@SpringBootTest(classes = PaymentAccountUpdaterApplication.class,
webEnvironment = SpringBootTest.WebEnvironment.NONE)
@TestPropertySource(locations = "classpath:application-messaging.properties")
public class CardIntegrationTest {

private final static String cardEventTopic = "TP.PRF.CARDEVENTS";
private final static String cardEventErrorTopic = "TP.PAYMENTS.CARDEVENTS.ERRORS";

@ClassRule
public static KafkaEmbedded kafkaEmbedded =
new KafkaEmbedded(1, false, cardEventTopic, cardEventErrorTopic);
// rest of the code
}

最佳答案

您可以通过类注释定义 embeddedKafka,并在那里使用 spEL 定义主题:

@EmbeddedKafka(topics = {"${my.topic1}", "${my.topic2}"})

或者您可以将 embededKafka 定义为任何配置类中的单独 bean,并具有您需要的所有属性。

不要忘记 Autowiring 它。

@Autowired
private EmbeddedKafkaBroker embeddedKafka;

关于spring-boot - 访问 Junit ClassRule 中的 spring-boot application.properties 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53699045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com