So holen Sie die Antwort mit WebTestClientJava

Java-Forum
Anonymous
 So holen Sie die Antwort mit WebTestClient

Post by Anonymous »

Ich bin neu in der reaktiven Programmierung und bei Problemen. Ich habe ein sehr einfaches Szenario, < /p>
Eine Entität: < /p>

Code: Select all

class SimpleEntity{
@Id
int id;
String name;
}
< /code>
Ein zugehöriges Repository: < /p>
class SimpleEntityRepository extends JpaRepository{

Slice findByName(String name, Pageable pageable);

}
< /code>
Ein verwandter Dienst: < /p>
class SimpleEntityService{
@Autowired
SimpleEntityRepository repository;

public Mono findByName(String name, Pageable pageable){
//All business logic excluded
return Mono.just(
repository.findByName(name, pageable);
);
}

}
< /code>
Ein zugehöriger Controller: < /p>
class SimpleEntityController{

@Autowired
SimpleEntityService service;

@RequestMapping("/some-mapping")
public Mono findByName(@Requestparam String name, int pageNum){
return service.findByName(name, Pageable.of(pageNum, 100));
}

}
< /code>
In meinen Integrationstests versuche ich jetzt mit WebTestClient auf den Controller, aber ich kann nicht verstehen, wie ich die Antwort abrufen und deserialisieren kann: < /p>
@Test
public void someIntegrationTest(){
WebTestClient.ResponseSpec responseSpec = webTestClient.get()
.uri(URI)
.accept(MediaType.APPLICATION_JSON)
.exchange();
responseSpec.returnResult(SliceImpl.class).getResponseBody.blockFirst();
}
< /code>
Die letzte Zeile löst die folgende Ausnahme aus: < /p>
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of org.springframework.data.domain.Pageable (no Creators, like default constructor, exist): abstract types either need to be mapped to concrete types, have custom deserializer, or contain additional type information at [Source: UNKNOWN; byte offset: #UNKNOWN] (through reference chain: org.springframework.data.domain.SliceImpl["pageable"])

Was ich im Wesentlichen möchte, ist in der Lage, die Scheibe zu erhalten und in der Lage zu sein, Behauptungen darüber auszuführen.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post