package com.example.freshonline.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.example.freshonline.FreshOnlineApplication; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; /** * How to run junit test? * run with configuration, select junit and class */ @RunWith(SpringRunner.class) @SpringBootTest(classes = {FreshOnlineApplication.class}) @AutoConfigureMockMvc public class StockedGoodsControllerTests { @Autowired private StockedGoodsController stockedGoodsController; @Autowired private MockMvc mockMvc; /** * mockMvc: lib for testing controller, simulate web requests */ @Before public void setup(){ mockMvc = MockMvcBuilders.standaloneSetup(stockedGoodsController).build(); } /** * @author Josh Sun * @throws Exception */ @Test public void testGetSearch() throws Exception{ String[] urls = new String[]{ "http://localhost:8080/goods", "http://localhost:8080/goods?", "http://localhost:8080/goods?min_price=3", "http://localhost:8080/goods?min_price=-1", "http://localhost:8080/goods?min_price=-9.99", "http://localhost:8080/goods?min_price=1000", "http://localhost:8080/goods?max_price=20", "http://localhost:8080/goods?max_price=-1.98", "http://localhost:8080/goods?min_price=-9.99&max_price=-2.9", "http://localhost:8080/goods?sort_type=0", "http://localhost:8080/goods?sort_type=1", "http://localhost:8080/goods?sort_type=5", "http://localhost:8080/goods?sort_type=-5.98%min_price=abc", "http://localhost:8080/goods?sort_type=-tnt%min_price=abc", "http://localhost:8080/goods?category_id=shu", "http://localhost:8080/goods?category_id=123,124", "http://localhost:8080/goods?category_id=125&keyword=abc", "http://localhost:8080/goods?category_id=125&page=-1", "http://localhost:8080/goods?category_id=125&page=5252.32", "http://localhost:8080/goods?brands=abc.tnt&keyword=beef", }; // some test urls here for (String url : urls){ System.out.println("testing getSearch, test url = " + url); MvcResult mvcResult = mockMvc.perform(get(url)).andReturn(); System.out.println("response type: " + mvcResult.getResponse().getContentType()); JSONObject resp = JSONObject.parseObject(mvcResult.getResponse().getContentAsString()); Assert.assertNotNull(resp); System.out.println("resp: " + resp); System.out.println("data:" + resp.get("data")); System.out.println("test finish, url = " + url); } } }