gpt4 book ai didi

java - Spring测试-使用真实的bean来创建测试bean

转载 作者:行者123 更新时间:2023-12-02 01:38:23 36 4
gpt4 key购买 nike

我使用 Spring,并创建了一个使用 SpringRunner 加载上下文的测试。

我有一个看起来像这样的bean:

@Bean
public Properties kafkaStreamsProperties(){
final Properties props = new Properties();
props.put("A", "B");
props.put("C", "D");

return props;
}

我想在测试中扩展它以包含属性“E”-->“F”。

我可以在内部 @TestConfiguration 类中轻松完成此操作,如下所示:

public class test{
public static class MyConfig{
@Bean
public Properties kafkaStreamsProperties(){
final Properties props = new Properties();
props.put("A", "B");
props.put("C", "D");
props.put("E", "F");
return props;
}
}
}

但是当我更改生产代码时,我也必须“记住”更改测试。有什么方法可以从上下文中获取实际的 bean 并将其“替换”为我的(使用实际的 bean)?

最佳答案

在 Spring 测试中,您有 @MockBean模拟 bean 或使用 @SpyBean 来监视 bean:

Spring Boot includes a @MockBean annotation that can be used to define a Mockito mock for a bean inside your ApplicationContext. You can use the annotation to add new beans or replace a single existing bean definition.

Additionally, you can use @SpyBean to wrap any existing bean with a Mockito spy

关于java - Spring测试-使用真实的bean来创建测试bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54862092/

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