MockMVC bruke JSONPath ikke kan lese

stemmer
0

Denne testen saken er løst og jeg kan ikke endre det. I kontrolleren Jeg er tilbake News Object som vises i modell del av produksjonen. Men JSONPath er i stand til å finne den.

Hvis denne testen saken må være bestått, hvor skal min utgang vises eller hva skal jeg tilbake fra kontrolleren.

@SpringBootTest
@RunWith(SpringRunner.class)
public class NewsControllerTest {
    private MockMvc mockMvc;

    @Autowired
    WebApplicationContext context;

    @InjectMocks
    private NewsController newsController;

    @Before
    public void setup() {
        mockMvc = MockMvcBuilders.webAppContextSetup(context).build();
    }

@Test
    public void retrievetest_ok() throws Exception {
        try {
         mockMvc.perform(get(/api/news/topstories )).andDo(print())
             .andExpect(status().isOk())                    
             .andExpect(MockMvcResultMatchers.jsonPath($.title).exists())
             .andExpect(MockMvcResultMatchers.jsonPath($.section).exists());
        }catch(Exception e) {
            e.printStackTrace();
        }


    }
}

Men jeg er ikke i stand til å hente data og title. Hvordan passere denne testcase. Hvor skal utgangsdata settes for å kunne se den i jsonpath.

Dette er min mock når jeg skriver det ut til konsoll

MockHttpServletRequest:
      HTTP Method = GET
      Request URI = /api/news/topstories
       Parameters = {}
          Headers = {}
             Body = <no character encoding set>
    Session Attrs = {}

Handler:
             Type = com.example.project.NewsController
           Method = public java.util.Map<java.lang.String, java.lang.String> com.example.project.NewsController.getNews()

Async:
    Async started = false
     Async result = null

Resolved Exception:
             Type = null

ModelAndView:
        View name = api/news/topstories
             View = null
        Attribute = section
            value = U.S.
        Attribute = title
            value = 4 Takeaways from Tuesday’s Primaries

FlashMap:
       Attributes = null

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = {Content-Language=[en]}
     Content type = null
             Body = 
    Forwarded URL = api/news/topstories
   Redirected URL = null
          Cookies = []

Jeg trenger å trekke ut

Publisert på 02/09/2018 klokken 05:10
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Fra javadoc

statisk JsonPathResultMatchers jsonPath (String uttrykk, Objekt ... args)

Tilgang til svarteksten påstander ved hjelp av en JsonPath uttrykk for å inspisere en spesifikk undergruppe av kroppen.

Og fra utskriften

 MockHttpServletResponse:
            Status = 200
     Error message = null
           Headers = {Content-Language=[en]}
      Content type = null
              Body = 
     Forwarded URL = api/news/topstories    Redirected URL = null
           Cookies = []

Det virker som du har en tom respons kroppen.

Vennligst endre kontrolleren til å produsere den riktige json i responsen kroppen.

Svarte 02/09/2018 kl. 05:58
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more