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

时间:2019-10-11 13:32:59

标签: java spring spring-boot junit

我有一个应用程序类

  @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!";
   }

 }

而且,我想为应用程序测试编写一个测试用例,以确保创建的实例类型为HelloController

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

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

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

2 个答案:

答案 0 :(得分:0)

对不起,我之前发布的代码是错误的。因此将其删除

这似乎更相关 Testing a controller with an auto wired component is null when calling the controller from a test case

答案 1 :(得分:0)

通过在@SpringBootTest(Classes = {HelloController.class})中添加类名称来解决问题。