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

测试SpringBoot应用程序的启动

长孙瑞
2023-03-14
@WebIntegrationTest
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SpringTestDemoApp.class)
public class SpringTest {

    @Test
    public void test() {
        // Test http://localhost:8080/ (with Selenium)
    }
}

使用spring-boot1.3.3.release时,一切工作都很好。尽管如此,在spring-boot1.5.2.release中已删除了注释@WebIntegrationTest@SpringApplicationConfiguration。我试图将代码重构为新版本,但我做不到。对于以下测试,我的应用程序在测试之前没有启动,http://localhost:8080返回404:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringTestDemoApp.class)
@WebAppConfiguration
public class SpringTest {

    @Test
    public void test() {
        // The same test than before
    }

}

如何重构测试以使其在Spring-Boot1.5中工作?

共有1个答案

白青青
2023-03-14

@springboottest中的webenvironment选项非常重要。它可以采用nonemockrandom_portdefined_port等值。

>

  • none将只创建spring bean,而不创建任何模拟servlet环境。

    mock将创建spring bean和一个模拟servlet环境。

    defined_port将使用属性中定义的端口并用它启动服务器。

    当您没有定义任何webenvironment时,默认值为random_port。所以应用程序可能会从不同的端口启动。

    尝试将其覆盖为defined_port,或者尝试自动连接端口号并尝试在该端口上运行测试。

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

    • 我在SpringBoot中开发微服务。为服务和DAO层编写单元测试。当我使用@SpringBootTest时,它会在构建时启动应用程序。但是当我运行单元测试时,它不应该启动应用程序。我使用了@runwith(Springrunner.class),但无法在junit类中使用@autowired类实例。如何配置不应该启动应用程序的junit测试类,以及如何在junit类中@Autowired类实例。

    • 我的SpringBoot应用程序中有一个控制器: 我想在mocks的帮助下,将其与服务分开进行测试。如何实施?

    • 我的程序编译了所有内容,我没有出错,但我实际上期望tomcat应该永久在端口8080上。输出中也没有Spring。在另一个项目中,我做的一切都很好。谢谢你帮助我。 我的父母: 我的tarter.class: 我的Starter-Pom: 控制台输出: 然后什么都不会发生了。谢谢你的帮助。

    • 我已经为此挣扎了一段时间了。我想使用restAs0007来测试我的SpringBoot REST应用程序。 虽然看起来容器旋转得很好,但请放心(其他任何东西似乎都有问题。 一直以来我都被拒绝连接。 我的测试类: 现在,对于奇怪的部分,传递并打印它应该传递的内容,但是正在获得连接拒绝异常。 知道这个装置有什么问题吗?

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