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