java - SpringApplicationConfiguration 无法解析为类型

标签 java spring spring-boot pom.xml

我知道这个问题之前已经发布过,但我无法从该帖子中解决它。我在以下代码中收到“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: 包 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)

请注意,这假设您正在尝试对 Controller 执行测试,基于您已使用 @WebAppConfiguration 注释测试的事实

关于java - SpringApplicationConfiguration 无法解析为类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61924885/

相关文章:

java - 如何使用 JAMA(Java 矩阵包)计算矩阵的伪逆?

spring - 将 Spring HATEOAS 链接转换为对象的正确方法

java - 在使用@refreshScope 注释的多个实例上应用/刷新

java - 如何使用Java运行启动目录中的bat文件?

java - 如何按字符串日期排序?标准生成器

java - String.hashCode() 效率低下吗?

java - 使用 Spring 在 Hibernate 中处理 session

spring - 在 Spring Boot 应用程序中添加 Servlet 过滤器

java - 应用程序启动失败 : Spring Boot setEnableLoggingRequestDetails() not exist

java - @Schedule 不在固定时间触发Service