2015-01-09 74 views
2

如果这是一个微不足道的问题,我很抱歉。我来自C#/。NET中的背景,所以我是Spring框架的新手。单元测试Spring Boot应用程序端点

我有一个小的Spring Boot应用程序,它在“/ health”处定义了一个健康端点。这是在代码中定义为:

@Component 
public class MyHealthEndpoint implements HealthIndicator { 
    public Health health() { 
    # ... 
    # returns health info as JSON here 
    # ... 
    } 
} 

所以运行的应用程序到本地主机端点访问时/健康返回一些应用程序运行状况的信息。

我的问题是:什么是测试这个最好的方法?

我想做一个MyHealthEndpoint类的单元测试,并试着在我的测试类中使用@Autowired实例化它,它不起作用。 也试图与

MyHealthEndpoint testHealthEndpoint = new MyHealthEndpoint(); 

实例它在测试类,但这种方法会返回一个空的新类没有健康信息,如此明显的依赖注入/ IOC在春天开机不注册,或者我对于Spring来说只是一个新手知道如何正确地做到这一点。

是唯一通过启动应用程序并直接运行测试http GET调用来运行集成测试的解决方案,然后声明返回的JSON或者您有更好的想法吗?

谢谢。

回答

1

您应该使用Sprint的测试情境框架 检查: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/testing.html#integration-testing-annotations

您可以在这里找到的lib:https://maven-repository.com/artifact/org.springframework/spring-test

您应该@ContextConfiguration,你标注的测试类(或父类)可以设置你的配置XML(位置参数)和配置Java类(类参数) 如果你使用SpringMVC添加@WebAppConfiguration注释太

如果它配置可以使用@A在测试中表现出色。

+0

同时我开始使用Spring * MVC测试框架* https://spring.io/blog/2012/11/12/spring-framework-3-2-rc1-spring-mvc-test-framework,我想这是测试基于Spring的REST端点的正确解决方案 –