Spring单元测试

来源:互联网 发布:安卓手机神器 知乎 编辑:程序博客网 时间:2024/05/17 01:41

1、单元测试简介

软件工程将软件测试分为:

单元测试

集成测试

功能测试

系统测试

开发人员职责:单元测试,集成测试(白盒测试)

测试人员职责:功能测试,系统测试(黑盒测试)

 

单元测试

单元测试是开发人员编写的一小段代码,用于检验目标代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试用来判断某个特定条件或特定场景下的某个特定方法的行为。

 

集成测试

集成测试则是在功能模块开发完成后,为验证功能模块之间匹配调用的正确性而进行的测试。

测试的价值

确保软件质量

确保软件代码的清晰性(可测试)

可以优化目标代码的设计

代码重构的保障

回归测试和持续性集成的基础

 

单元测试框架-JUnit

JUnit框架是Java开发中使用最多的测试框架之一

JUnit框架相关概念

测试用例(Test Case):一个测试用例可以添加多个测试方法,一个测试方法可以针对一个目标类的方法进行测试。测试运行器为每个测试方法生成一个测试用例实例并分别运行。

断言(Assertions):断言是测试框架里面的若干个方法,用来判断某个语句的结果是否为真或判断是否与预期相符。

 

Junit断言核心方法

assertArrayEquals(expecteds,actuals):查看两个数组是否相等。

assertEquals(expected,actual):查看两个对象是否正确。类似于字符串比较使用的equals()方法。

assertNotEquals(first,second):查看两个对象是否不相等。

assertNotNull(object):查看对象是否为空。

assertSame(expected,actual):查看两个对象的引用是否相等。类似于使用“!=”比较两个对象。

assertTrue(condition):查看运行结果是否为true。

assertFalse(condition):查看运行结果是否为false。

assertThat(actual,matcher):查看实际值是否满足指定的条件。

fail():让测试失败。

2、具体事例

package com.liutao.service.impl;import com.liutao.dao.UserMapper;import com.liutao.domain.User;import com.liutao.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;/** * Created by liutao on 2015/12/29. */@Service("userService")public class UserServiceImpl implements UserService {    @Autowired    private UserMapper userMapper;    @Autowired    private GoodsServiceImpl goodsService;    public User getUsersByName(String username) {        System.out.println(userMapper);        System.out.println("user:"+userMapper.getUsersByName(username));        return userMapper.getUsersByName(username);    }    public String getUserGoodsName(String goodsId){        return goodsService.getGoodsName(goodsId);    }}

package TestDao;import com.liutao.service.impl.UserServiceImpl;import junit.framework.TestCase;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.test.annotation.Rollback;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/** * @author: liutao  Date: 2015/12/29. */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:conf/applicationContext.xml")public class TestUser extends TestCase{    @Autowired    private UserServiceImpl userService;    @Rollback(true)    @Test    public void findUser() throws Exception {        System.out.println(userService.getUsersByName("liutao"));        assertEquals("liubei",userService.getUsersByName("liutao").getUsername());    }}



1 0