您可以在没有starter-web的情况下使用spring-boot-starter-test吗?

问题描述

我试图在一个没有“ web”代码的单独项目中编写集成测试。我正在尝试仅添加spring-test-starter,如下所示:

implementation group: 'org.springframework.boot',name: 'spring-boot-starter-test',version: '2.3.4.RELEASE'

无需添加(或类似的启动器)

implementation group: 'org.springframework.boot',name: 'spring-boot-starter-web',version: '2.3.4.RELEASE'

但是当我去使用时 org.springframework.boot.test.web.client.TestRestTemplate

org.springframework.boot.test中不包含返回类型,它在“ org.springframework.http.ResponseEntity”下

public <T> ResponseEntity<T> getForEntity(String url,Class<T> responseType,Map<String,?> urlVariables)
                                   throws RestClientException

我找不到任何地方说spring-boot-starter-test依赖于spring-boot-starter-web,因为否则,入门者的意义何在?有没有一种方法可以不依赖(2)个启动器来使用TestRestTemplate?

解决方法

如果您不想使用入门包,则需要手动添加所需包的依赖关系。像ResponseEntityspring-web的一部分。因此,您需要向spring-webpom.xml文件添加build.gradle依赖项。

如果只希望使用spring-web进行测试,则可以将此行添加到build.gradle文件中。

testCompile group: 'org.springframework',name: 'spring-web',version: '5.2.9.RELEASE'

或您的pom.xml文件

<!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.2.9.RELEASE</version>
    <scope>test</scope>
</dependency>

检查所需的版本。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...