我的休息服务依赖于外部服务。我如何模拟它以在我的黄瓜测试中使用?

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

我在 Spring Boot Maven 中进行了一些 Cucumber 测试(给出、何时、然后是集成测试),并且我能够使用 TestRestTemplate 测试我的端点,但前提是外部服务正在运行。

外部服务的工作是在我将信息保存到数据库之前检查一些字段。

正常运行应用程序时,外部服务由 FeignClient 调用。

使用 TestRestTemplate 测试端点时是否可以模拟外部服务?

编辑:

结构示例模型

控制器.java

@Autowired
EmployeeSvc employeeSvc;

@PostMapping(/save)
public ResponseEntity<String> saveEmployee(@RequestBody EmployeeDTO employeeDTO) {
    employeeSvc.save(employeeDTO);
}

EmployeeSvc.java

@Autowired
ExternalSvcClient externalSvcClient;    //External service is called by feignclient here.
@Autowired
EmployeeRepository employeeRepository;

public void save(EmployeeDTO employeeDTO) {
    externalSvcClient.check(employeeDTO);
    
    ...some other code
    
    Employee employee = dtoTransformer.transoform(employeeDTO);
    employeeRepository.save(employee);
}

java spring spring-boot rest cucumber
1个回答
0
投票

好的,我按照this设法使用wiremock进行测试。

对于存根,请确保不要在路径中包含参数:

如果您的请求网址如下所示

myrequest/?value1=someValue

在存根中将其设置为这样,并将参数附加到其余模板上,否则它将无法工作

myrequest/
restTemplate.getForEntity(url+"value1=someValue"....)
© www.soinside.com 2019 - 2024. All rights reserved.