spring 集成 junit

   spring 集成 junit,方便测试,特别是使用TTD方法开发。

1、spring是纯java方式配置,集成junit如下:

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 _() {

    }
}


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

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,这样我们的测试就相当方便。举例如下

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);
    }
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。