gpt4 book ai didi

java - Spring TestRestTemplate 没有正确 Autowiring

转载 作者:搜寻专家 更新时间:2023-11-01 03:17:25 25 4
gpt4 key购买 nike

我目前正在使用 Spring Boot 1.5.4 以及 Junit 5 和 Java 8。

我想使用 Junit 的 ParameterizedTest 对存储在 csv 文件中的多个条目设置集成测试。

代码如下:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class MatchingIT {

@Autowired
private TestRestTemplate template;

@ParameterizedTest
@MethodSource(names = "vehicles")
void nonRegressionTests(EDIVehicle vehicle) {
ResponseEntity<Vehicle> v = template.getForEntity("/match/" + vehicule.getId(), Vehicle.class);
Assert.assertNotNull(v);
}

private static Stream<EDIVehicle> vehicles() throws IOException {
InputStream is = new ClassPathResource("/entries.csv").getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
return br.lines().map(toVehicle);
}

private static Function<String, EDIVehicle> toVehicle = (line) -> {
String[] p = line.split("\\|");
return new EDIVehicle(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12]);
};
}

我从文档中了解到:

If you are using the @SpringBootTest annotation, a TestRestTemplate is automatically available and can be @Autowired into your test.

问题是我确实使用了 SpringBootTest 注释,但是当我运行测试时,TestRestTemplate 始终为 null。也许我错过了什么。

编辑:我在添加@RunWith(SpringRunner.class) 注释时遇到了完全相同的问题

最佳答案

我最终使用了来自以下 repo 的依赖项:github.com/sbrannen/spring-test-junit5正如@LucasP所述

由于在 Spring 4.3 及以下版本中没有对 JUnit 5 的一流支持,它帮助我通过在我的测试类上使用 @ExtendWith(SpringExtension.class) 正确地 Autowiring Spring TestRestTemplate。

下一步将直接使用 Spring Boot 2.0 以更好地支持 JUnit 5。

关于java - Spring TestRestTemplate 没有正确 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44526324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com