当前位置: 首页 > 知识库问答 >
问题:

SpringBoot应用程序Junit测试无法自动连接

严柏
2023-03-14

我有一个应用类

  @SpringBootApplication
   public class Application{
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
     }
   }

我有控制器课

  @RestController
  public class HelloController {

   @RequestMapping("/")
   public String index() {
    return "Greetings from Spring Boot!";
   }

 }

并且,我想为Application test编写一个测试用例,以确保创建的实例类型为HelloController

     @RunWith(SpringRunner.class)
     @SpringBootTest
     public class ApplicationTest{
        @Autowired
        private HelloController helloController;

       @Test
        public void test(){
          assertNotNull(helloController);
         }
       }

但是,我在自动连接 hello控制器变量时遇到错误(找不到 hello 控制器类型的 bean)。根据我的理解,@SpringBootTest应该创建上下文并返回一个实例。我们不需要编写任何上下文 xml 或使用任何注释Config 类来获取实例。缺少了什么?

共有2个答案

平学
2023-03-14

通过在@SpringBootTest中添加类名(类 = {Hello控制器.class})解决了问题。

薛元忠
2023-03-14

对不起,我之前发布的代码是错误的。所以删除了它

这似乎更相关 从测试用例调用控制器时,使用自动连线组件测试控制器为空

 类似资料:
  • 使用spring-boot时,一切工作都很好。尽管如此,在spring-boot中已删除了注释和。我试图将代码重构为新版本,但我做不到。对于以下测试,我的应用程序在测试之前没有启动,http://localhost:8080返回404: 如何重构测试以使其在Spring-Boot1.5中工作?

  • 我想尝试嵌入式数据库测试我的DAO对象在spring应用程序。 在应用程序上下文中,我有以下标记: 我的JUnit测试类需要使用这个bean: 一切正常(创建了“DataSourceEmbedded”bean),但当我试图在PartnerDAOTest类中自动调用它们时,spring抛出了以下异常: testSavePartner(Sandbox.PartnerDaoTest):创建名为“Sand

  • 我正在尝试将测试添加到我的Spring Boot应用程序,但当我这样做时,应用程序无法启动。 我有一个自定义的jwt授权类来验证jwt,我不确定这是否会导致任何问题? 以下是我使用服务器的安全配置类: 下面是堆栈跟踪: 不知道从哪里开始,我在这里没有找到任何解决的线程。请向我解释一下,将不胜感激! 编辑:我有一个常规app.properties: 还有一个正在测试/资源:

  • 集成测试: 当我偶尔运行这个测试时,一切都很好,但是当我和其他测试一起运行它时,没有使用模拟的ServerThroughRabbitMQ,所以一些spring缓存强制使用旧的rabbit侦听器。 我试图调试它,我可以看到,正确的bean被autowired到测试中,但由于某些原因旧监听器使用(旧bean字段instanceID=1新mocked bean instanceID=3),测试失败(不确

  • 尝试完成Spring Boot教程:https://Spring.io/guides/gs/spring-boot/#initial 以下是我的课程: 和pom.xml: 当我尝试使用以下命令运行它时:“mvn package&&java-jar target/gs-spring-boot-0.1.0.jar”,我得到的是: “-dmaven.home=C:\program files\jetbr