Spring 在没有应用 class 存在时启动测试控制器
Spring boot test controllers when no app class present
所以我有一个多 Maven 模块项目,有一个控制器模块和一个包含 spring 引导启动应用程序的模块 class。
我的应用程序
- 部署(模块)
- 控制器(模块)
在控制器模块中,我希望能够使用 mockMvc 测试它们
然而,当我 运行 它时,我得到以下错误:
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
我想做的是仍然能够测试这个,我可以创建一个测试应用程序并使用它吗?
@RunWith(SpringRunner.class)
@WebMvcTest(Controller.class)
@ActiveProfiles(Constants.TEST)
public class ControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void contextLoads() {
assertNotNull(mockMvc);
}
}
您可以像这样在您的测试包中创建一个 "test config" class:
@SpringBootApplication
public class TestConfig {
}
我将此方法用于我需要测试的自定义存储库或服务库
你可以用
注释你的class
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
而且你做不到
@Autowired
protected MockMvc mockMvc;
以及您需要的所有其他东西。
希望这对您有所帮助
所以我有一个多 Maven 模块项目,有一个控制器模块和一个包含 spring 引导启动应用程序的模块 class。
我的应用程序 - 部署(模块) - 控制器(模块)
在控制器模块中,我希望能够使用 mockMvc 测试它们
然而,当我 运行 它时,我得到以下错误:
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test
我想做的是仍然能够测试这个,我可以创建一个测试应用程序并使用它吗?
@RunWith(SpringRunner.class)
@WebMvcTest(Controller.class)
@ActiveProfiles(Constants.TEST)
public class ControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void contextLoads() {
assertNotNull(mockMvc);
}
}
您可以像这样在您的测试包中创建一个 "test config" class:
@SpringBootApplication
public class TestConfig {
}
我将此方法用于我需要测试的自定义存储库或服务库
你可以用
注释你的class@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
而且你做不到
@Autowired
protected MockMvc mockMvc;
以及您需要的所有其他东西。
希望这对您有所帮助