博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring 4.0 JUnit简单的Dao,Service测试
阅读量:5126 次
发布时间:2019-06-13

本文共 1914 字,大约阅读时间需要 6 分钟。

1.AbstractTransactionalJUnit4SpringContextTests 和AbstractJUnit4SpringContextTests。我们在测试用例类要继承两种中的一个。

AbstractTransactionalJUnit4SpringContextTests提供了数据库自动回滚,也就是说测试前和测试后数据库是一样的

AbstractJUnit4SpringContextTests不提供数据库自动回滚,测试会破坏数据库。

查看源码发现,AbstractTransactionalJUnit4SpringContextTests就是继承自AbstractJUnit4SpringContextTests,同时类上面多了两个Annotation:@TestExecutionListeners(TransactionalTestExecutionListener.class) 和@Transactional。所以实现数据库回滚有两种方法,如下:

 public class BasicTest extends AbstractTransactionalJUnit4SpringContextTests {} 

@TestExecutionListeners(TransactionalTestExecutionListener.class)@Transactionalpublic class BasicTest extends AbstractJUnit4SpringContextTests {}

好吧,说了这么多没用的还不如直接上代码

为了避免每个测试用例都要配置spring环境,先建立一个父类:BasicTest,内容很简单,真的很简单:

@ContextConfiguration(locations= {
"classpath:spring/applicationContext.xml","classpath:spring/spring-servlet.xml"})public class BasicTest extends AbstractTransactionalJUnit4SpringContextTests {}
@ContextConfiguration:顾名思义就是配置context配置文件的地址,我这里是Web程序,所以还要spring-servlet.xml。 网上的例子都有@RunWith注解,但是我发现 AbstractJUnit4SpringContextTests 类上已经有了@RunWith,那么这里就不需要了。只要配置@ContextConfiguration就可以了 然后测试用例继承BasicTest如下: 具体的测试方法怎么写就不用说了。
public class PeopleServiceTest extends BasicTest{    @Resource(name="PeopleService")    private PeopleService ps;        @Test    public void queryAll() {        List
list=ps.queryAll(null); System.out.println(list); Assert.assertEquals("list没有10个", 10, list.size()); } @Test public void update() { People p=new People().set("id", 29).set("name", "tom").set("address", "").set("age", 10); Assert.assertEquals("没有修改", 1, this.ps.update(p)); } @Test public void insert() { People p=new People().set("name", "Mike").set("address", "america").set("age", 10); Assert.assertEquals("没有插入", 1, this.ps.add(p)); }}
 

 

 

 

转载于:https://www.cnblogs.com/formyjava/p/4595037.html

你可能感兴趣的文章
制作曲线图
查看>>
Codeforces Round #177 (Div. 1) B. Polo the Penguin and Houses【组合数学】
查看>>
ccf--20140903--字符串匹配
查看>>
CF468B Two Sets
查看>>
c# winform窗体如何设置才可以不能随意拖动大小
查看>>
Cmd Markdown 简明语法手册
查看>>
使用mybatis操作AS400数据库
查看>>
Swift 操作符
查看>>
silverlight制作虚线的边框
查看>>
prometheus 笔记
查看>>
electron知识点
查看>>
字符串json转换为xml xml转换json
查看>>
C#多线程编程
查看>>
投资股权众筹项目,至少需要关注6个方面
查看>>
网站开发和企业级开发有什么区别?
查看>>
北漂周记--第2记--培训开始
查看>>
一个伟大计划终于完成了(粉丝联盟网正式上线了)
查看>>
设计模式 学习笔记(2)单一职责原则、开放封闭原则、依赖倒转原则
查看>>
Thread类和Runnable接口
查看>>
【Vue】【Router】手动跳转用 this.$router.push() 时 $router 未定义的问题
查看>>