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);
}
}
原文:http://my.oschina.net/u/2007041/blog/392778