Java分层设计(DAO设计模式)—JUnit测试

本文通过JUnit测试框架对Java项目的DAO层设计模式进行了详细的单元测试,包括插入、更新、删除等核心功能,并验证了测试结果的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇用于对Java分层设计(DAO设计模式)的测试而写。

一、选中IDeptService右键-NEW-JUnit Test Case


创建在cn.mldn.test.junit包下


二、点击next,选中全部



三、点击OK,选中导入JUnit包



四、添加测试代码

package cn.mldn.test.junit;

import static org.junit.Assert.fail;

import java.util.HashSet;
import java.util.Set;

import org.junit.Test;

import cn.mldn.factory.ServiceFactory;
import cn.mldn.vo.Dept;
import junit.framework.TestCase;

public class IDeptServiceTest {

	@Test
	public void testInsert() {
		Dept vo = new Dept() ;
		vo.setDeptno(11);
		vo.setDname("教育");
		vo.setLoc("北京");
		try {
			TestCase.assertTrue(ServiceFactory.getIDeptServiceInstance().insert(vo));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testUpdate() {
		Dept vo = new Dept() ;
		vo.setDeptno(11);
		vo.setDname("体育");
		vo.setLoc("天津");
		try {
			TestCase.assertTrue(ServiceFactory.getIDeptServiceInstance().update(vo));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testDelete() {
		Set<Integer> ids = new HashSet<Integer>() ;
		ids.add(11) ;
		try {
			TestCase.assertTrue(ServiceFactory.getIDeptServiceInstance().delete(ids));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testList() {
		try {
			TestCase.assertTrue(ServiceFactory.getIDeptServiceInstance().list().size() > 0);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Test
	public void testGet() {
		try {
			TestCase.assertNotNull(ServiceFactory.getIDeptServiceInstance().get(10));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


五、点击Window—>show view—>outline,选中IDeptServiceTest类进行全部测试,或者逐一选中类中的方法,进行分别测试。只需选中,右键,Run as—>JUnit Test



六、测试结果


显示绿条,则表明测试结果正确。

查看数据库:


成功添加。

其他方法就不逐一演示了。


IEmpService的测试,操作步骤同上。

IEmpServiceTest代码如下:
package cn.mldn.test.junit;

import static org.junit.Assert.*;

import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.junit.Test;
import cn.mldn.factory.ServiceFactory;
import cn.mldn.vo.Emp;
import junit.framework.TestCase;

public class IEmpServiceTest {
	@Test
	public void testInsert() {
		Emp vo = new Emp() ;
		vo.setEmpno(8899);
		vo.setEname("程光友");
		vo.setJob("摄影师");
		vo.setHiredate(new Date());
		vo.setSal(10.0);
		vo.setComm(0.5);
		try {
			TestCase.assertTrue(ServiceFactory.getIEmpServiceInstance().insert(vo));
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}

	@Test
	public void testUpdate() {
		Emp vo = new Emp() ;
		vo.setEmpno(8899);
		vo.setEname("陈冠佐");
		vo.setJob("演员");
		vo.setHiredate(new Date());
		vo.setSal(10.0);
		vo.setComm(0.5);
		try {
			TestCase.assertTrue(ServiceFactory.getIEmpServiceInstance().update(vo));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Test
	public void testDelete() {
		Set<Integer> ids = new HashSet<Integer>();
		ids.add(8899);
		try {
			TestCase.assertTrue(ServiceFactory.getIEmpServiceInstance().delete(ids));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	@Test
	public void testGet() {
		try {
			TestCase.assertNotNull(ServiceFactory.getIEmpServiceInstance().get(7369));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testList() {
		try {
			TestCase.assertNotNull(ServiceFactory.getIEmpServiceInstance().list().size() > 0);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Test
	public void testListIntIntStringString() {
		try {
			Map<String,Object> map = ServiceFactory.getIEmpServiceInstance().list(2,5,"ename","") ;
			//取出分页过后的记录条数,需要向下转型为Integer
			int count = (Integer)map.get("empCount") ;
			List<Emp> all = (List<Emp>) map.get("allEmps") ;
			TestCase.assertTrue(count > 0 && all.size() > 0);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值