Получение пустого ответа в тестовых примерах блока контроллера пружинного упора - PullRequest
0 голосов
/ 27 октября 2018

Я написал примеры модульных тестов для контроллера пружинного упора для метода, описанного ниже

 @PutMapping("/offers/{jobTitle}")
 public Offer updateOffer(@PathVariable String jobTitle,@Valid @RequestBody Offer offer) {          
           return offerService.updateNoOfPost(jobTitle, offer);
  }

Ниже приведен мой класс обслуживания

  @Override
    public Offer updateNoOfPost(String jobTitle, Offer offer) {
        if(!offerRepository.existsById(jobTitle))
            throw new ResourceNotFoundException("JobTitle "+jobTitle+" not found !!");
        offer.setNoOfPost(offer.getNoOfPost());
        return offerRepository.save(offer);
    }

Я написал пример модульных тестов для этогометод с использованием testNg и mockito

public class OfferControllerTest {

private MockMvc mvc;
private JacksonTester<Offer> jsonOffer;

@Mock
private OfferService service;

@InjectMocks
OfferController offerController;

private Offer offer;

@BeforeMethod
public void setup() {
    offer = new Offer("LSE", new Date(),1);
     MockitoAnnotations.initMocks(this);
      mvc = MockMvcBuilders.standaloneSetup(offerController)
                .build();

      JacksonTester.initFields(this, new ObjectMapper());
}
   @Test
   public void updateOffer() throws  Exception {
       Mockito.when(service.updateNoOfPost("LSE", offer)).thenReturn(offer);
       MockHttpServletResponse response = mvc.perform(
               put("/offers/LSE").contentType(MediaType.APPLICATION_JSON).content(
                       jsonOffer.write(new Offer("SE", new Date(), 19)).getJson()
               )).andReturn().getResponse();
       assertThat(response.getContentAsString()).isEqualTo(new ObjectMapper().writeValueAsString(offer));
   }

Я получаю код ответа как 200., но при получении пустого body.pls найдите ошибку ниже

FAILED: updateOffer
org.junit.ComparisonFailure: expected:<"[{"jobTitle":"LSE","createdAt":"2018-10-27","noOfPost":1}]"> but was:<"[]">
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

что мне не хватает?Это стандартный способ записи тестовых случаев для контроллера пружинного упора?

1 Ответ

0 голосов
/ 27 октября 2018

Под издевательством надо решить проблему

Mockito.when(service.updateNoOfPost(Mockito.any(String.class), Mockito.any())).thenReturn(offer);

Подробнее здесь: stack-46914252

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...