的 Micronaut 文件上傳控制器(在 Java 中)具有以下簽名:@Consumes(MediaType.MULTIPART_FORM_DATA)@Produces("application/json")@Postpublic Single<IdType> uploadFile(Publisher<CompletedFileUpload> files)我有以下工作 Spock 測(cè)試(在 Groovy 中):@MicronautTestclass UploadSpecification extends Specification implements CsvFileBuilder { @Inject @Client('/') HttpClient client @Shared List<String> allowedMimeTypes = List.of("text/csv", "application/vnd.ms-excel") @Unroll void "upload mailings csv with content type #mediaType"() { given: MultipartBody multipartBody = MultipartBody .builder() .addPart("files", "myfile.csv", new MediaType(mediaType), createCsvAsBytes(buildCsv())) .build() when: HttpResponse response = client.toBlocking() .exchange(POST("/v1/mailings", multipartBody).contentType(MediaType.MULTIPART_FORM_DATA_TYPE)) then: response.status == HttpStatus.OK where: mediaType << allowedMimeTypes }}我想對(duì)測(cè)試進(jìn)行更改的是:HttpClient我不想使用在測(cè)試頂部注入的標(biāo)準(zhǔn),而是使用這樣的東西:@InjectUploadClient uploadClient@Client(value = "/v1/mailings")static interface UploadClient { @Post HttpResponse postFile(...)}我的問(wèn)題是,postFile客戶需要什么簽名?我仍然可以使用MultipartBody但以某種方式將其轉(zhuǎn)換為CompletedFileUpload? 我真的不知道如何解決這個(gè)問(wèn)題,而且我是一個(gè)初學(xué)者RxJava。任何幫助表示贊賞。
1 回答

三國(guó)紛爭(zhēng)
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
請(qǐng)嘗試以下操作:
@Client(value ="/v1/upload")
static interface UploadClient {
@Post(uri = "/mailings", produces = MediaType.MULTIPART_FORM_DATA)
HttpResponse postFile(@Body MultipartBody file)
}
添加產(chǎn)品和正文注釋
添加回答
舉報(bào)
0/150
提交
取消