淘宝商城(天猫)高级技术专家.3年研发+3年性能测试调优/系统测试+4年团队管理与测试架构、研发系统实践. 新舞台新气象, 深化测试基础架构及研发架构,希望能在某个技术领域成为真正的技术大牛。欢迎荐才http://bbs.51testing.com/viewthread.php?tid=120496&extra=&page=1 .邮件: jianzhao.liangjz@alibaba-inc.com,MSN:liangjianzhao@163.com.微博:http://t.sina.com.cn/1674816524

unitils数据库测试实例2

上一篇 / 下一篇  2009-06-10 22:20:31 / 个人分类:java性能监控与调优

UserDAOTest.java

 

packagecom.ali.amoeba.brmmstest;

importjava.util.Arrays;

importjava.util.List;

importorg.junit.Ignore;

importorg.junit.Test;

importorg.springframework.context.ConfigurableApplicationContext;

importorg.springframework.context.support.ClassPathXmlApplicationContext;

importorg.unitils.UnitilsJUnit4;

importorg.unitils.database.annotations.Transactional;

importorg.unitils.database.util.TransactionMode;

importorg.unitils.dbunit.annotation.DataSet;

importorg.unitils.dbunit.annotation.ExpectedDataSet;

importorg.unitils.dbunit.datasetloadstrategy.impl.CleanInsertLoadStrategy;

importorg.unitils.dbunit.datasetloadstrategy.impl.InsertLoadStrategy;

importorg.unitils.reflectionassert.ReflectionAssert;

importorg.unitils.spring.annotation.SpringApplicationContext;

importorg.unitils.spring.annotation.SpringBeanByType;

importcom.ali.amoeba.brmmstest.dao.AmoebaDao;

importcom.ali.amoeba.brmmstest.dataobject.User;

importorg.junit.runner.RunWith;

importorg.unitils.UnitilsJUnit4TestClassRunner;

@RunWith(UnitilsJUnit4TestClassRunner.class)

 

@SpringApplicationContext({"classpath:resources/test-common.xml"})

 

publicclassUserDAOTest {// extends UnitilsJUnit4 {

 

   /*用标注或者overwrite createApplicationContext方法都可以

   @SpringApplicationContext

   public ConfigurableApplicationContext createApplicationContext() {

     return new ClassPathXmlApplicationContext(new String[]{"classpath:resources/test-common.xml"});

   }

   */

 

   //从配置文件里面读取spring bean的数据源

   protectedAmoebaDaouserDao;

   @SpringBeanByType

   publicvoidsetAmoebaDao(AmoebaDao userDao) {

      this.userDao= userDao;

   }

 

   @Test

   @DataSet(loadStrategy = CleanInsertLoadStrategy.class)

   @ExpectedDataSet

   publicvoidtestFindByName() {

      User user=newUser();

      user.setFirst("doe");

      user.setLast("john");

      User result =userDao.findByName(user);

      System.out.println(result);

      ReflectionAssert.assertPropertyLenEquals("first","doe", result);

   }

   @Transactional(TransactionMode.COMMIT)

   @Test

   publicvoidtestInsertUser() {

      User user=newUser();

      user.setId(7777);

      user.setFirst("good");

      user.setLast("xxxx");

      user.setAge(31);

      userDao.insertUser(user);

   }

 

   //用一个xml数据源数据存储到db,过滤部分数据.然后与预定的另外一部分数据对比

   //达到数据可控

   //每次做之前该表数据都清空

   @Test

   @DataSet("UserDAOTest.testFindByMinimalAge.xml")

   @ExpectedDataSet("UserDAOTest.testFindByName-result.xml")

   publicvoidtestFindByMinimalAge() {

      List<User> result =userDao.findByMinimalAge(18);

      ReflectionAssert.assertPropertyLenEquals("first", Arrays.asList("methodDataset"), result);

   }

}  

UserDAOTest.xml内容都形如:

<?xmlversion='1.0'encoding='UTF-8'?> 

<dataset> 

     <userid="11" first="doe"  last="john"  age="20"/> 

     <userid="1" first="good"  last="bad"  age="10"/> 

</dataset>


TAG: dbunit unitils 自动化

Felicia88的个人空间 引用 删除 Felicia88   /   2009-12-08 20:43:55
原帖由liangjz于2009-06-23 21:53:52发表
呵呵,动手实践就清楚了
Felicia88的个人空间 引用 删除 Felicia88   /   2009-12-08 20:43:36
阿里巴巴一个测试架构师 引用 删除 liangjz   /   2009-06-23 21:53:52
呵呵,动手实践就清楚了
笑遍世界的测试技术 引用 删除 smile665   /   2009-06-23 15:22:52
大师~ 比较深奥的东东啊。。
过几天回来 要静下心来好好学习测试...
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar