gpt4 book ai didi

java - @MockBean 正确注入(inject)但在测试类上具有空值

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

我正在使用 Cucumber 和 Spring Boot 进行测试

@CucumberContextConfiguration
@ActiveProfiles(profiles = { "cucumber" })
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE)
@ExtendWith(SpringExtension.class)
public class FooTest {

@Autowired
BatchService batchService;

@MockBean
S3ClientService s3ClientService;

@MockBean
HttpClientService httpClientService;

@SpyBean
UndueService undueService;


@Given("^foo cucumber test$")
public void foo_cucumber_test() {
System.out.println("Foo Test");
}
}

当我在@Given 方法上使用断点运行/调试我的测试时

enter image description here

我得到了这个奇怪的行为,@Mockbean/@SpyBean 被正确注入(inject),但在测试类中它的值为 null !!而且我无法运行 Mockito 函数 verifywhen

但是当我在没有 cucumber 的情况下运行测试时

@Test
void fooTest() {
System.out.println("Foo Test");
}

效果不错!!值不为 null

最佳答案

因此,模拟 bean 已创建但未注入(inject)到测试套件。我想你应该同时添加 @Autowired@MockBean 注释。

这是一个类似的问题:Spring @MockBean not injected with Cucumber

关于java - @MockBean 正确注入(inject)但在测试类上具有空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68269912/

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