gpt4 book ai didi

java - Spring Boot与JUnit执行测试的问题

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

我在运行 Junit 测试时遇到问题,出现错误:

java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
at org.springframework.util.Assert.state(Assert.java:73)

我怎么看,Spring Boot找不到我的测试类。我有多个 Maven 模块,在我的 A 模块中,我有 SpringBootApplication 类和 Controller ,在模块 B 中,我有我的 Service 模块,是我写的测试类:

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestClass{

@Autowired
private ImplDatabase serviceDatabase;

@MockBean
private Repository repository;

@Test
public void saveMethode() {
Model model= new Model ();

event.setCreated(LocalDateTime.now());
model.setMessage("sdsd");
model.setCategory("Somi");

when(repository.save(model)).thenReturn(model);
assertEquals(model, serviceDatabase.saveTest(model));
}

}

我有 C 模块,其中存储了我的存储库

依赖关系的层次结构是:我在 A 模块中对 BC 以及 B 具有依赖关系模块我对 C 有依赖。

最佳答案

在模块B中,您可以创建

@ComponentScan({"com.mycompany.myapp.moduleB",
"com.mycompany.myapp.moduleB.subpackage1",
"com.mycompany.myapp.moduleB.subpackage1.subsubpackage1a",
"com.mycompany.myapp.moduleB.subpackage2"
/*add here all required packages to scan for B's components and services*/ })
public class BConfig {}

然后用 @SpringBootTest(classes = BConfig.class) 标记模块 B 中的 Junit 测试

注意,BConfig 不必位于主源中,请将其放在测试源中

关于java - Spring Boot与JUnit执行测试的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57749065/

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