一、 Junit常用注解
1. @Before: 在每個測試方法執行之前都會執行一次,常用于初始化資料,資源
2. @BeforeClass: 在所有測試方法執行之前執行,隻執行一次,類必須用static void 修飾
3. @AfterClass:在所有測試方法之後執行,隻執行一次,類必須用static void 修飾
4. @After: 在每個測試方法執行之後都會執行一次,用于關閉資源
5. @Test:标注為測試方法
可參考部落格:http://bijian1013.iteye.com/blog/1987441
二、 mockMVC測試
1. 相關注解
a) @WebAppConfiguration :啟動一個web伺服器,在測試結束之後再關閉該伺服器
b) @RunWith(SpringJUnit4ClassRunner.class):指定單元測試執行類,該處使用SpringJUnit4ClassRunner.class
c) @ ContextConfiguration(”classpath:xxxx”):指定spring的測試配置檔案,建議測試的配置檔案與正式的配置檔案分開,可以指定多個配置檔案格式如:locations = { "classpath*:/spring1.xml","classpath*:/spring2.xml" }
2. 執行個體化mockmvc
a) MockMVCmockmvc= MockMvcBuilders.standaloneSetup(Object... controllers).build();通過指定一組控制器來建立一個mockmvc用于測試
3. 相關測試方法
a) perform() : 執行請求,調用業務邏輯處理
b) get(”url”):指定請求方式,還可以有post等相關方式,URL為請求路徑
c) param(): 請求參數
d) andReturn ():傳回相應的mvcResult處理結果
e) andDo():添加一個結果處理器,如使用MockMvcResultHandlers.print()輸出整個響應結果資訊,andDo(MockMvcResultHandlers.print())
4. 代碼執行個體
5. @WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:spring-context-test.xml")
public class SubscriberCountControllerTest {
@Autowired
private WhiteListServicewhiteListService;
@Autowired
private InvalidParaminvalidParam;
@Autowired
private SubscriberCountServicesubscriberCountService;
private MockMvc mockMvc;
@Before
public void setUp()throws Exception {
mockMvc = MockMvcBuilders.standaloneSetup(newSubscriberCountController(
invalidParam,whiteListService,subscriberCountService))
.build();
}
@Test
public void subscriberMinCount1day()throws Exception{
String json=this.mockMvc.perform(get("/v1.0/realtimeSubscriberAnalysis/subscriberMinCounts")
.param("areaIds","1;2")
.param("recordedDateTime","2017-10-10 21:00:00")
.param("applicationId","test")).andReturn().getResponse().getContentAsString();
List<SubscriberDayCount> list=newObjectMapper().readValue(json,newTypeReference<List<SubscriberDayCount>>(){});
for (SubscriberDayCount sc: list) {
System.out.println(sc.toString());
}
}
}
參考部落格:https://www.cnblogs.com/xiaohunshi/p/5706943.html
https://www.cnblogs.com/lyy-2016/p/6122144.html