spring 集成 junit

   spring 集成 junit,方便測試,特別是使用TDD方法開發。java

一、spring是純java方式配置,集成junit以下:
redis

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.redis.demo.init.AppConfig;

/**
 * 共用 dao
 * 
 * @author sean
 * 
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { AppConfig.class })
public class BaseDaoTest {

    @Test
    public void _() {

    }
}


二、spring是xml文件的方式配置,集成junit以下:spring

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * 共用 dao
 * 
 * @author sean
 * 
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext.xml"})
public class BaseDaoTest {

    @Test
    public void _() {

    }
}


這樣其餘的測試類就能夠繼承這個BaseDaoTest,這樣咱們的測試就至關方便。舉例以下app

import java.util.List;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import com.redis.demo.core.entity.Member;

public class MemberDaoTest extends BaseDaoTest {

    @Autowired
    private IMemberDao memberDao;
    private Member member;

    @Before
    public void setUp() {
        member = new Member();
        member.setName("魏升水");
        member.setCardNum("25215411200");
    }

    /**
     * 測試保存會員
     */
    @Test
    public void testSaveMember() {
        saveMember(member);
        Assert.assertNotNull(member.getId());
        memberDao.saveMember(member);
        Assert.assertNotNull(member.getId());
    }

    /**
     * 測試經過id查詢會員
     */
    @Test
    public void testGetMemberById() {
        // 添加數據
        saveMember(member);

        // case 1: id 存在,能查詢到數據
        String id = member.getId();
        Member member2 = memberDao.getMemberById(id);
        Assert.assertEquals(member.getId(), member2.getId());

        // case 2: id 不存在,不能查詢到數據
        id = id + "1";
        Member member3 = memberDao.getMemberById(id);
        Assert.assertNull(member3);
    }

    /**
     * 查詢全部會員
     */
    @Test
    public void testGetAllMembers() {
        // 前置檢查:如今尚未添加數據,一個會員也沒有
        List<Member> members = memberDao.getAllMembers();
        Assert.assertEquals(0, members.size());

        // 添加數據: 保存兩個會員
        // save member1
        saveMember(member);
        // save member2
        member = new Member();
        member.setName("jredis");
        member.setCardNum("20150324");
        saveMember(member);

        members = memberDao.getAllMembers();
        Assert.assertEquals(2, members.size());
    }

    /**
     * 測試根據id刪除會員
     */
    @Test
    public void testDeleteMemberById() {
        // 數據準備
        saveMember(member);

        // case 1: 指定的id存在,刪除成功
        String id = member.getId();
        boolean isDeleted = memberDao.deleteMemberById(id);
        Assert.assertTrue(isDeleted);

        // case 2: 指定的id不存在,刪除失敗
        id = id + "1";
        isDeleted = memberDao.deleteMemberById(id);
        Assert.assertFalse(isDeleted);
    }

    private void saveMember(Member member) {
        memberDao.saveMember(member);
    }
}
相關文章
相關標籤/搜索