- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要针对 REST API 创建集成测试。我的服务使用 Resttemplate 作为 HTTP 客户端。客户端代码是从 swagger 文件生成的。
运行测试会产生错误 java.lang.AssertionError: No further requests expected: HTTP GET
测试似乎是针对模拟服务器运行的。如何让测试在真实服务器上运行?
这是我当前的测试设置(想要切出一个最小的测试框架以获得快速测试 - 启动完整的上下文太慢了):
@RunWith(SpringRunner.class)
@Import(value = { TpzConfig.class, TpzServiceRestImpl.class, ManufacturingPlantPhPmMapperImpl.class,
ProductHierarchyMapperImpl.class, PlantMapperImpl.class })
@ActiveProfiles(profiles = { "tpz" })
@RestClientTest
public class TpzServiceRestImplTest {
@Autowired
private TpzService to;
@MockBean
private ProductionPlantService ppService;
@MockBean
private ProductHierarchyService phService;
@Test
public void test() {
List<ProductManufacturer> pmByProductHierarchy = to.pmByProductHierarchy("001100909100100388");
}
}
我需要 @RestClientTest
来拥有 RestTemplateBuilder 的 bean。
有没有办法配置 @RestClientTest
使用真实服务器(类似于 @DataJpaTest
我可以配置不使用 h2)?
最佳答案
@RestTemplateTest
为您提供预配置的 RestTemplateBuilder
和 MockRestServiceServer
。
1.您可以@Autowired
MockRestServiceServer
并模拟预期的 HTTP 调用。
2.删除自动配置:
@RestClientTest(excludeAutoConfiguration = MockRestServiceServerAutoConfiguration.class)
但这会使测试有点慢..也许有一种方法可以优化它。
3.另一方面,您可以删除@RestClientTest
,并在测试配置文件中创建一个RestTemplateBuilder
bean。像这样:
@TestConfiguration
public class TestConfig {
@Bean
public RestTemplateBuilder getRestTemplateBuilder() {
return new RestTemplateBuilder();
}
}
在此之后,将此配置文件添加到您的导入中:
@Import(value = { TpzConfig.class, TpzServiceRestImpl.class,
ManufacturingPlantPhPmMapperImpl.class, ProductHierarchyMapperImpl.class,
PlantMapperImpl.class, TestConfig.class })
你应该能顺利通过考试。
关于spring-boot - Spring Boot @RestClientTest 如何使用真实服务器进行测试(不是模拟),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58608994/
我正在尝试使用 @RestClientTest 来测试休息客户端类。 据说: It will apply only configuration relevant to rest client test
我是 Swager 2 的新手,我一直在尝试进行一些测试,但没有成功,我希望我可以使用它。情况是这样的: 我正在使用 spring-boot 创建不同的休息服务,一切正常,但是当我尝试为我的服务创建单
我需要针对 REST API 创建集成测试。我的服务使用 Resttemplate 作为 HTTP 客户端。客户端代码是从 swagger 文件生成的。 运行测试会产生错误 java.lang.Ass
我想使用 @RestClientTest 为下面的组件编写一个简单的测试(注意:我可以不使用 @RestClientTest 并且模拟依赖 bean,效果很好。)。 @Slf4j @Component
我想使用 @RestClientTest 为下面的组件编写一个简单的测试(注意:我可以不使用 @RestClientTest 并且模拟依赖 bean,效果很好。)。 @Slf4j @Component
我已将使用 RestTemplate 的 Spring Boot (2.1.4) 服务更改为使用 @Qualifier。现在我的测试(使用 @RestClientTest 和 @AutoConfigu
我已将使用 RestTemplate 的 Spring Boot (2.1.4) 服务更改为使用 @Qualifier。现在我的测试(使用 @RestClientTest 和 @AutoConfigu
我正在使用 spring boot 1.5.8 并想测试我的客户端: @Component public class RestClientBean implements RestClient {
编辑:这个问题专门与 spring-boot 1.4.0 中引入的 @RestClientTest 注释有关,该注释旨在替换工厂方法。 问题: 根据documentation @RestClientT
我是一名优秀的程序员,十分优秀!