Spring 单元测试

本文主要讲的是 使用mock方式单元测试。

Spring测试框架提供MockMvc对象,可以在不需要客户端-服务端请求的情况下进行MVC测试,完全在服务端这边就可以执行Controller的请求,跟启动了测试服务器一样。


1.@Autowired引入测试的类,然后继承基类,测试方法上面要加@Test注解。

例:

@RunWith(SpringRunner.class) 
@SpringBootTest(classes = Main.class)  //Main.class是springboot的启动类名 
@WebAppConfiguration public class StyleControllerTest {
    @Autowired 
    private WebApplicationContext context;     //引入测试的类

    private MockMvc mockMvc;
    @Autowired
    protected WebApplicationContext wac;

    @Before
    public void setupMockMvc() throws Exception {
        mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();  //初始化MockMvc对象
    }
    @Test     
    public void testSend() throws Exception {         
    }
}

2.testSend()

    1).mockMvc.perform执行一个请求

    2).MockMvcRequestBuilders.get("/user/1")构造一个get请求  

    3).ResultActions.andExpect添加执行完成后的断言  

    4).ResultActions.andDo添加一个结果处理器,表示要对结果做点什么事情,比如此处使用MockMvcResultHandlers.print()输出整个响应结果信息。 

    5).ResultActions.andReturn表示执行完成后返回相应的结果。


3.注释列表及含义:

@test    这个注释说明依附在 JUnit 的 public void 方法可以作为一个测试案例

@Before    在 public void 方法加该注释是因为该方法需要在 test 方法前运行(有些测试在运行前需要创造对象)

@After    在 public void 方法加该注释是因为该方法需要在 test 方法后运行(如果你将外部资源在 Before 方法中分配,那么你需要在测试运行后释放他们)

@BeforeClass    在 public void 方法加该注释是因为该方法需要在类中所有方法前运行

@AfterClass     在 public void 方法加该注释是因为该方法在所有测试结束后执行。这个可以用来进行清理活动

@Ignore    用来忽略有关不需要执行的测试


4.在 Assert 类中提供的              

    assertEquals 支持:boolean double float int long Map Object byte[] byte char Coolection等    

    assertNotEquals 只支持 : float double Object 这三种类型。使用中如果是不支持的数据类型,就会调用 Object 这种类型!


5.运行有两种方法:  1).选中方法,右键,然后run …;

                                      2).点击方法前的小标;

                                      

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值