簡體   English   中英

我的 rest 服務依賴於外部服務。 如何模擬它以在我的 cucumber 測試中使用?

[英]My rest services relies on an external service. How do I mock it to use on my cucumber tests?

我在 spring 啟動 maven 中進行了一些 cucumber 測試(給定,何時,然后是集成測試),並且我只能使用外部服務運行 TestRestTemplate 來測試我的端點,

外部服務的工作是在我將信息保存到數據庫之前檢查一些字段。

正常運行應用程序時,外部服務由 FeignClient 調用。

是否可以在使用 TestRestTemplate 測試端點時模擬外部服務?

編輯:

結構樣機樣機

Controller.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);
}

好的,我設法按照這個使用wiremock進行測試。

對於存根,請確保不要在路徑中包含參數:

如果您的請求 url 看起來像這樣

myrequest/?value1=someValue

在存根和 append rest 模板上的參數中使其像這樣,否則它將不起作用

myrequest/
restTemplate.getForEntity(url+"value1=someValue"....)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM