如何对 Spring Boot 库进行集成测试?

问题描述 投票:0回答:1

我目前正在做我自己的项目。该项目分为 RESTful 服务和库。 RESTful 服务是一个常规的 Spring Boot 应用程序,它依赖于我的库。我的库包含最多的逻辑来处理和存储来自服务的传入数据。

现在我的服务和库可以顺利地协同工作,但我的库缺少一些测试。我认为测试我的库的最佳方法是一方面进行单元测试来测试我的方法,另一方面进行集成测试来测试我的库中的更多流程。例如。从我的外层接收数据,处理数据并将数据存储在数据库中。

正如我已经提到的,我将第二个项目构建为一个库,因此它缺少一些插件,例如:

id 'org.springframework.boot' version '3.2.5'

这是我的build.gradle:

plugins {
    id 'java-library'
    id 'maven-publish'
    id 'io.spring.dependency-management' version '1.1.4'
}
...
dependencies {
    implementation 'org.springframework:spring-beans:6.1.5'
    implementation 'org.springframework:spring-context:6.1.5'
    implementation 'org.springframework:spring-jdbc:6.1.5'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa:3.2.4'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
    implementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'

    runtimeOnly 'com.mysql:mysql-connector-j:8.3.0'

    compileOnly 'org.projectlombok:lombok:1.18.30'
    annotationProcessor 'org.projectlombok:lombok:1.18.30'

    testImplementation 'junit:junit:4.13.1'

    implementation 'org.mapstruct:mapstruct:1.5.5.Final'
    annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final'

}

我在 Google 上找到了一些信息,这些信息引导我使用 @DataJpaTest 来提供与我的数据库的连接,但它给了我一个 “无法解析符号 'DataJpaTest'” 错误消息。我想这个问题的根源是我的库可能缺少一些插件。

我的问题是我有点不知道现在应该如何进行以及在我的情况下最佳实践方法是什么。

java spring-boot gradle integration-testing spring-test
1个回答
0
投票

我发现了我的问题。在提到我是否将 @DataJpaTest 添加到错误的资源后,我检查了我的工件。问题是,

testImplementation 'org.springframework.boot:spring-boot-starter-test'
没有导入,因为我没有提供版本。

© www.soinside.com 2019 - 2024. All rights reserved.