spring-boot - 没有应用程序类时的 Spring Boot 测试控制器
问题描述
所以我有一个多 Maven 模块项目,其中包含一个用于控制器的模块和一个包含 Spring Boot 启动应用程序类的模块。
myApp - 部署(模块) - 控制器(模块)
在控制器模块中,我希望能够使用 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);
}
}
解决方案
您可以在测试包中创建一个“测试配置”类,如下所示:
@SpringBootApplication
public class TestConfig {
}
我正在使用这个方法来测试我需要测试的自定义存储库或服务
比你可以用
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
而且比你能
@Autowired
protected MockMvc mockMvc;
以及您需要的所有其他东西。
希望这可以帮助
推荐阅读
- php - 在 laravel 5.6 api 中按名称选择
- c# - 从具有强类型的特定控制器获取特定操作的路由列表
- ios - 在 iOS 中保存和查看文件
- c - 每次运行时用户定义的减少不返回预期结果
- php - 对手动生成的关联数组进行数组搜索(不同的列名)
- java - 使用机器人类从 Windows 弹出窗口上传文件失败
- laravel - 如何在 Laravel 中映射像 url 'day and name' 这样的 url?
- javascript - 比较对象时遍历文档树的原生 JavaScript 方法
- java - JProfiler Heap Walker - 选择由位于特定 Java 包中的 GC Root 持有的对象
- java - Jar 在 Ubuntu 中找不到主类,但在 Windows 中可以