So I'm learning Unit Testcases for SpringMVC and also pretty new to Spring-Boot in general.
I wanna write a unit test case for this mvc controller method that I have
@RequestMapping("/college")
@RestController
public class college {
@PersistenceContext
private EntityManager em;
@RequestMapping(value = "/request", method = RequestMethod.GET)
public List<Object> display() {
//List<StudentDB> val = temp.findAll();
Query query = em.createNativeQuery("SELECT * FROM STUDENT");
List<Object> val = (List<Object>)query.getResultList();
return val;
}
I tried writing something like this -
@SpringBootTest
public class MockTestCollegeController {
@Mock
private EntityManager em;
@InjectMocks
private college col;
@Autowired
private MockMvc mockMvc;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
this.mockMvc = MockMvcBuilders.standaloneSetup(col).build();
}
@Test
public void dets() throws Exception
{ RequestBuilder req =MockMvcRequestBuilders.get("/college/request").accept(MediaType.APPLICATION_JSON);
MockHttpServletResponse result = mockMvc.perform(req).andReturn().getResponse();
//System.out.println(result.getResponse().getContentAsString());
//String expected = "{id:1,content:'Hello, World!'}";
Query query = em.createNativeQuery("SELECT * FROM STUDENT");
List<Object> val = (List<Object>)query.getResultList();
Assert.assertEquals(val, result);
}
But its giving me a NullPointerException at -
MockHttpServletResponse result = mockMvc.perform(req).andReturn().getResponse();
Any suggestions?