У меня есть служба отдыха, написанная с использованием Spring Boot, как показано ниже:
@RestController
class MyBankingController{
@GetMapping("/getCards")
public SomePOJO getCards(){}
@GetMapping("/cardPresent")
public boolean isCardPresent(@RequestParam(value = "username") String
username){
//calls service layer to return primitive true or false
}
}
Ниже мой тестовый класс:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = MyBankingApplication.class, webEnvironment =
SpringBootTest.WebEnvironment.RANDOM_PORT)
public class MyBankingControllerIT {
private MyBankingController myBankingController;
private TestRestTemplate restTemplate;
private static final String BASE_URL = "/company/cards";
HttpHeaders headers = new HttpHeaders();
String username = "1234";
@Autowired
private MyBankingService myBankingService;
@LocalServerPort
private int port;
@Before
public void setUp() throws Exception {
myBankingController = new MyBankingController(myBankingService);
restTemplate = new TestRestTemplate();
}
@Test
public void testIsCardPresent() throws JSONException {
String url = BASE_URL+"cardPresent?username="+username;
HttpEntity<String> entity = new HttpEntity<String>(null, headers);
ResponseEntity<Boolean> response = restTemplate.exchange(
createURLWithPort(url),
HttpMethod.GET, entity, Boolean.class);
assertTrue(response.getBody());
}
private String createURLWithPort(String uri) {
return "http://localhost:" + port + uri;
}
}
Я не могу проверить этот тип логического возврата. Я пробовал несколько разных вещей, но это не работает. Я получаю ошибку ниже.
org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize instance of java.lang.Boolean out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of java.lang.Boolean out of START_OBJECT token at [Source: (PushbackInputStream); line: 1, column: 1]
Пожалуйста, обратите внимание, что приведенный выше код является всего лишь настраиваемой версией фактического кода, и в настоящий момент невозможно изменить тип возврата или контроллер.
Не могли бы вы рассказать мне, как это проверить?