Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2296615
  • 博文数量: 252
  • 博客积分: 5472
  • 博客等级: 大校
  • 技术积分: 3107
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-17 18:39
文章分类

全部博文(252)

文章存档

2012年(96)

2011年(156)

分类: Java

2012-01-10 17:34:07

Hibernate第三步:
开发测试用例AddressDAOTest.java测试AddressDAO.java
 
通常开发完DAO层的代码 都需要辨析JUnit测试用例来进行数据层测试 下面我们就来编写一个测试用例类来测试AddressDAO.java 包括
[1]编写单元测试类AddressDAOTest.java
[2]编写测试套件类AllTest.java
 
 
[1]编写单元测试类AddressDAOTest.java
通常测试用例类都以“*Test”形式命名 该类必须继承TestCase 并包含一个addressDAO对象 该对象在setUp()中通过FileSystemXmlApplicationContext类来读取Bean的配置文件 然后使用getBean()取得。
  1. package com.demo.hibernate.test;

  2. import java.util.Iterator;
  3. import java.util.List;

  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.FileSystemXmlApplicationContext;

  6. import com.demo.hibernate.beans.Address;
  7. import com.demo.hibernate.dao.IAddressDAO;
  8. import com.demo.hibernate.dao.AddressDAO;

  9. import junit.framework.TestCase;

  10. public class AddressDAOTest extends TestCase {

  11.     public IAddressDAO addressDAO;

  12.     public AddressDAOTest(String name) {
  13.         super(name);
  14.     }

  15.     protected void setUp() throws Exception {
  16.         super.setUp();
  17.         addressDAO = new AddressDAO();
  18.         ApplicationContext ctx = new FileSystemXmlApplicationContext(
  19.                 "WebRoot/WEB-INF/applicationContext.xml");
  20.         addressDAO = (IAddressDAO) ctx.getBean("addressDAO");
  21.     }

  22.     protected void tearDown() throws Exception {
  23.         super.tearDown();
  24.     }

  25.     public void testFindAllByUsername() throws Exception {
  26.         List list = addressDAO.findAllByUsername("admin");
  27.         assertTrue(list.size() == 0);
  28.         Iterator it = list.iterator();
  29.         while (it.hasNext()) {
  30.             Address address = (Address) it.next();
  31.             assertNotNull(address);
  32.         }
  33.     }

  34.     public void testFindById() throws Exception {
  35.         Address address = addressDAO.findById("1");
  36.         assertNotNull(address);
  37.     }

  38.     public void testI***ist() throws Exception {
  39.         boolean b = addressDAO.i***ist("admin", "lzb");
  40.         assertTrue(b);
  41.     }

  42.     public void testInsert() throws Exception {
  43.         Address address = new Address();
  44.         address.setUsername("admin");
  45.         address.setName("andy");
  46.         address.set***("2");
  47.         address.setMobile("13888886666");
  48.         address.setEmail("andy@163.com");
  49.         address.setQq("12345678");
  50.         address.setCompany("Intel");
  51.         address.setAddress("上海市");
  52.         address.setPostcode("200089");
  53.         addressDAO.insert(address);

  54.         address = addressDAO.findById("2");
  55.         assertNotNull(address);
  56.     }

  57.     public void testUpdate() throws Exception {
  58.         Address address = new Address();
  59.         address.setId(new Integer(2));
  60.         address.setUsername("admin");
  61.         address.setName("andy");
  62.         address.set***("2");
  63.         address.setMobile("13888886666");
  64.         address.setEmail("andy@163.com");
  65.         address.setQq("12345678");
  66.         address.setCompany("Microsoft");
  67.         address.setAddress("上海市");
  68.         address.setPostcode("200089");
  69.         addressDAO.update(address);

  70.         Address address2 = addressDAO.findById("2");
  71.         assertTrue(address2.getCompany().equals("Microsoft"));
  72.     }

  73.     public void testDelete() throws Exception {
  74.         addressDAO.delete("2");

  75.         Address address = addressDAO.findById("2");
  76.         assertNull(address);
  77.     }

  78. }
 
[2]编写测试套件类AllTest.java
编写一个测试套件类AllTest.java 用来启动addressDAOTest.java的测试代码 该类必须继承TestCase 并编写一个测试入口函数suite() 在该函数中创建一个TestSuite类型的变量 并使用addTest()函数增加addressDAOTest.class的测试类 然后返回该套件变量suite。
然后编写一个主函数main() 使用TestRunner来运行suite()函数
  1. package com.demo.hibernate.test;

  2. import junit.framework.Test;
  3. import junit.framework.TestCase;
  4. import junit.framework.TestSuite;

  5. public class AllTest extends TestCase {
  6.     
  7.     public static void main(String[] args) {
  8.         junit.textui.TestRunner.run(suite());
  9.     }
  10.     
  11.     public static Test suite() {
  12.         TestSuite suite = new TestSuite("Test for test");

  13.         suite.addTest(new TestSuite(AddressDAOTest.class));
  14.         return suite;
  15.     }
  16. }
用鼠标右键单击测试套件类AllTest.java 在弹出的快捷菜单中选择运行-JUnit命令 即开始测试以上六个函数。
如果现实的绿色的进度条 说明6个任务都测试成功了 这样就可以放心食用AddressDAO.java中的函数了
阅读(1544) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~