Ад. Я делаю юнит-тесты с жасмином, кармой и ангуляром. Когда я выполнил следующий тест, я получил это исключение:
feign.FeignException: статус 406, чтение AppRbp # getReports (DTOReport)
код:
Метод, который я тестирую
exportReportSwitch() {
switch (this.modulo) {
case 'RBP':
this.serviceRbp.getReports(this.reportSelected).subscribe(response => this.savePdf(response, this.reportSelected));
break;
case 'CCR':
this.serviceCcr.getReports(this.reportSelected).subscribe(response => this.savePdf(response, this.reportSelected));
break;
case 'Micro':
this.serviceMicro.getReports(this.reportSelected).subscribe(response => this.savePdf(response, this.reportSelected));
break;
default:
break;
}
Тест
it('Test unitario metodo exportReportSwitch() en caso de que Sea Micro', () => {
//Arrange
const serviceMicro = fixture.debugElement.injector.get(MicroService);
const serviceSpy = spyOn(serviceMicro, 'getReports').and.callThrough();
when(serviceMicro.getReports('Listado 1').subscribe()).thenReturn();
component.modulo = 'Micro';
//Act
component.exportReportSwitch();
//Assert
expect(serviceSpy).toHaveBeenCalled(); });
Бэкэнд-метод
@CrossOrigin
@RequestMapping(value = "/getReports", method = RequestMethod.POST, produces = "application/json", consumes = "application/json")
@ResponseBody
public ResponseEntity<byte[]> getReports(@RequestBody DTOReports dto) {
String nameFile = dto.getReport();
String jrxmlDir = "src/main/resources/jrxml/";
String jasperDir = jrxmlDir + "/jasper/";
byte[] outputPDF=null;
try {
File mainfile = ResourceUtils.getFile(jrxmlDir +nameFile + ".jrxml");
compilerToJasper(jrxmlDir, jasperDir, nameFile);
Map<String, Object> parameters = new HashMap<>();
parameters.put("SUBREPORT_DIR", jasperDir);
JasperReport report=JasperCompileManager.compileReport(mainfile.getAbsolutePath());
JasperPrint jasperPrint = JasperFillManager.fillReport(report,parameters,this.dataSource.getConnection());
JRPdfExporter exporter = new JRPdfExporter();
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
ByteArrayOutputStream pdfReportStream = new ByteArrayOutputStream();
exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(pdfReportStream));
exporter.exportReport();
outputPDF = pdfReportStream.toByteArray();
} catch (Exception e) {
System.out.println("Se ha producido la siguiente excepcion: " + e);
}
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.valueOf("application/pdf"));
responseHeaders.setContentLength(outputPDF.length);
return new ResponseEntity<byte[]>(outputPDF, responseHeaders, HttpStatus.OK);
}
Угловой сервис
getReports(file: String): Observable<any> {
let body = JSON.stringify({
'report': file
});
return this.llamarServicioDownloadFile(this.baseURL_RBP + GET_REPORTS_RBP, body);
}
и, наконец, ошибка в изображении
ошибка
Если вам нужна дополнительная информация, пожалуйста, не спрашивайте меня. Я нуб в StackOverflow
Извините за мой английский, я испанский