當使用REST Assured和REST Docs時,我有一個問題,請求的端口已更新,但響應中的所有HATEOAS鏈接指向任何解決測試運行。Spring REST Docs - 從REST確保測試生成的響應代碼段中更新URI
從REST文檔的文檔,我看到如何使用預處理器更新的要求:
.addFilter(document("{class-name}/{method-name}/{step}", preprocessRequest(
modifyUris().scheme("http")
.host("localhost")
.port(9999),
removeHeaders("Accept"))))
,但無法找到,如果有支持修改端口INT的響應。舉例來說,當我想在配置中的端口設置爲9999:
捲曲request.adoc:(這是一件好事:本地主機:9999)
$ curl 'localhost:9999/request/data' -i
響應體。 ADOC:(我想改變本地主機:51123爲localhost:9999)
{
"_links" : {
"requests" : {
"href" : "localhost:51123/request/data/requests{?page,size,sort,projection}",
"templated" : true
},
"users" : {
"href" : "localhost:51123/request/data/users{?projection}",
"templated" : true
},
"profile" : {
"href" : "localhost:51123/request/data/profile"
}
}
}
的是使用REST Docs或REST Assured來修改響應的內容是否可接受?我想我可以創建一個@AfterClass方法來解析更新這些資源,但我希望有更清潔的東西。
[後續] 我接受了來自安迪·W.下面的答案,但希望提供;誰具有同樣的問題,任何額外的信息 -
我的問題是,我是想添加文件過濾兩次:
.addFilters(Arrays.asList(
document("{class-name}/{method-name}/{step}",
preprocessRequest(modifyUris().scheme("http")
.host("localhost")
.port(9999))),
document("{class-name}/{method-name}/{step}",
preprocessResponse(modifyUris().scheme("http")
.host("localhost")
.port(9999))))
與調用文件的方法與參數:
RestDocumentationFilter文件(字符串標識,OperationRequestPreprocessor requestPreprocessor,OperationResponsePreprocessor responsePreprocessor,片段...片段)
一旦我做了改變這一切都按預期。 乾杯!
謝謝安迪的澄清,併爲所有的真棒工作和支持你在春天提供的所有! 接受你的答案,並添加一些更多的細節,我的問題。 – Groater