java - SpringApplicationConfiguration 无法解析为类型
问题描述
我知道这个问题之前已经发布过,但我无法从那个帖子中解决它。我在以下代码中收到“无法将 SpringApplicationConfiguration 解析为类型”的错误:
package com.caveofprogramming.tests;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import com.caveofprogramming.App;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(App.class)
@WebAppConfiguration
public class StatusTest {
@Test
public void testDummy() {
long value = 7l;
assertNotNull("Value should not be null", value);
}
}
这在 pom.xml 文件中具有以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.1.9.RELEASE</version><!--$NO-MVN-MAN-VER$-->
</dependency>
我能做些什么来摆脱这个错误但不会导致任何其他问题?谢谢。
下面是App.java:package com.caveofprogramming;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.web.servlet.view.UrlBasedViewResolver;
import org.springframework.web.servlet.view.tiles3.TilesConfigurer;
import org.springframework.web.servlet.view.tiles3.TilesView;
@SpringBootApplication
public class App extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder
application) {
return application.sources(App.class);
}
@Bean
public TilesConfigurer tilesConfigurer() {
TilesConfigurer tilesConfigurer = new TilesConfigurer();
String[] defs = {"/WEB-INF/tiles.xml"};
tilesConfigurer.setDefinitions(defs);
return tilesConfigurer;
}
@Bean
public UrlBasedViewResolver tilesViewResolver() {
UrlBasedViewResolver tilesViewResolver = new UrlBasedViewResolver();
tilesViewResolver.setViewClass(TilesView.class);
return tilesViewResolver;
}
}
解决方案
我相信这样的配置会让你继续前进
@RunWith(SpringRunner.class)
@ComponentScan(basePackages = {"com.caveofprogramming"})
@SpringBootTest
@AutoConfigureMockMvc
我认为您的测试(或打算)比您列出的要多得多。如果你真的要做一个像这样的简单测试,用 Mockito 跑步者运行,你不需要剩下的废话。
@RunWith(MockitoJUnitRunner.class)
请注意,这假设您正在尝试执行控制器测试,基于您已使用注释测试的事实@WebAppConfiguration
推荐阅读
- github - 如何自动选择 GitHub 操作的最新标记版本?
- angular - 是否可以在角度 7 中将自定义事件添加到 fullcalendar?
- node.js - 在 Windows 10 中 NPM 全局安装包会导致 Windows 脚本主机错误
- java - 如何使数字越来越大
- python - 向量化数组:构造矩阵,指定位置为 1,其他位置为 0
- r - 如何使用 deSolve 在 R 中数值求解 Lane-Emden 方程
- heroku - github.GithubException.GithubException: 401 on Heroku 当想要在用户的公共仓库上创建一个仓库-Github API
- django - Virtualenv 交集(python、django)
- flutter - 向下滚动内部可滚动时关闭底部工作表
- docker - 有没有办法让 Docker 容器连接到主机但不能连接到互联网