gpt4 book ai didi

java - 如何使用 Spring Boot 注入(inject)模拟?

转载 作者:行者123 更新时间:2023-12-01 16:34:18 25 4
gpt4 key购买 nike

我想将模拟注入(inject)到我的 Springboot 应用程序中。我收到此错误:

Error creating bean with name 'ca.company.TestA': Unsatisfied dependency expressed through field 'a'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'ca.company.hello.A' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

我被困住了,不明白如何处理。我将 A 定义为 Autowiring 。有什么问题吗?

这是我的测试文件:

@RunWith(SpringJUnit4ClassRunner.class)
public class TestA {

@Autowired
private A a;

private B Bmock;

@Before
public void before() {
Bmock = Mockito.mock(B.class);
ReflectionTestUtils.setField(a, "b", Bmock);
}

@Test
public void testSpeak() {
when(Bmock.writeToScreen()).thenReturn("Everything will be alright");
assert(true);
}
}

这是配置文件:

@Configuration
public class Config {

@Bean
public B b() {
return new B();
}

// The error persists whether I define this bean or not
@Bean
public A a() {
return new A();
}

}

这是有问题的类:

@Component
public class A {
@Autowired
private B b;



public void speak() {
System.out.println(b.writeToScreen());
}
}

最后这是我的文件结构:

enter image description here

我做错了什么,我不明白。

最佳答案

Spring 不处理您的配置类。实现这一目标的最简单方法是将 @ContextConfiguration(classes = Config.class) 放入测试类中。

关于java - 如何使用 Spring Boot 注入(inject)模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61992488/

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