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

如何测试Spring Boot 1.2.7应用程序?

和和煦
2023-03-14

我需要测试旧的SpringBootJava应用程序(SpringBoot 1.2.7、Java1.8版本),我不想更改Spring版本(因为应用程序非常庞大,然后我必须对代码进行大量重构)。

我想将不同的表列类型应用于桌面应用程序的输入,并测试该应用程序是否正确确定它们。

但问题是,由于旧版本的Spring,我无法提取@ExtendWith(SpringExtension.class),@ExtendWith(Mockito扩展.class)或@RunWith(SpringRunner.class)之类的注释来启用Spring启动功能,或者@SpringBootTest加载完整的应用程序上下文以进行端到端集成测试。

我正在使用以下依赖项进行测试:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <version>1.3.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>

我试图升级Spring依赖项的版本以进行测试(以便能够包含注释)并保留现有项目的Spring版本,但随后发生了初始化错误。

如何启用Spring启动功能进行测试?

共有1个答案

晋骏喆
2023-03-14

最推荐的解决方案是升级整个项目。如果没有,最简单的解决方案是依靠Spring启动器测试

xml prettyprint-override"><dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

这意味着您将不得不依赖 JUnit 4 和更早版本的模拟、AssertJ 和Spring测试库。

以下是可以使用的注释:

    < Li > < code > @ extend with(spring extension . class)/< code > @ run with(spring runner . class)→< code > @ run with(spring JUnit 4 class runner . class) < Li > < code > @ extend with(mockito extension . class)→< code > @ run with(mockitojunitrunner . class) < Li > < code > @ spring boot test →< code > @ SpringApplicationConfiguration (不是精确替换)

测试切片(< code>@DataJpaTest,< code>@WebMvcTest)是在Spring boot 1.4中引入的,所以你也不能依赖那些。

最好的方法是查看Spring boot 1.2.7的参考文档。他们展示的一个例子是:

java prettyprint-override">@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = SampleDataJpaApplication.class)
public class CityRepositoryIntegrationTests {

    @Autowired
    CityRepository repository;

    // ...

}
 类似资料:
  • 问题内容: 我有一个使用React的网络应用程序,我正在尝试使用Selenium RC创建一些测试。我发现,当Selenium更改字段的值时,不会正确触发事件。我知道这是一个典型的问题,正如WebDriver常见问题所证明的那样,我已经尝试了很多不同的事情,例如使用onFocus而不是onChange并使用sendKeys()和type()确保焦点进出,以编程方式调用该事件以及我可以在网上找到的任

  • 问题内容: 我刚刚在我的express应用程序中添加了shouldjs和mocha进行测试,但是我想知道如何测试我的应用程序。我想这样做: 当然,测试套件中的最后一个测试只是告诉med,res.render函数(在show_create_user_screen中调用)是未定义的,可能是因为服务器未运行且配置尚未完成。所以我想知道其他人如何设置他们的测试? 问题答案: 好的,虽然测试路由代码是您可能

  • 我有一个spring boot应用程序,其中我的SpringBootApplication入门类看起来像一个标准类。因此,我为我的所有功能创建了许多测试,并将摘要发送给sonarqube以查看我的覆盖范围。 对于我的初级课程,Sonarqube告诉我,我只有60%的覆盖率。因此,平均覆盖率不如预期。 我的测试类只是默认类。 那么如何在应用程序的入门类中测试我的主类呢?

  • 在新版本(1.1)中,我想用新列升级数据库。 在我的应用程序中,数据库升级是一个常见的崩溃,因为以前版本(1.0)中的用户没有数据库中的新列。 我尝试过使用Google Play Store的beta测试功能,但问题是没有一个有效的方法(或者至少我还没有找到一个)来做到以下几点: 唯一的方法(就我所关心的)是从测试列表中删除测试器(在Google Play systems中刷新可能需要几个小时),

  • 我是NativeScript的新手,我刚刚制作了我的第一个应用程序。我的应用程序需要在真正的iPhone上进行测试;然而,我不知道如何在真正的iPhone上测试它,而不是在模拟器上。我试着查看appbuilder文档,但我不知道如何在iPhone上测试它。当我插上iPhone时,我试图使用,但我发现: 我不知道为什么我不能在iPhone上运行它。谁能告诉我如何在真正的iPhone上测试它,或者我做