junit与mockMVC测试

来源:互联网 发布:淘宝自动核对地址插件 编辑:程序博客网 时间:2024/06/18 14:36

一、   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()throwsException {
       
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