知识大全 Spring应用的单元测试
Posted 知
篇首语:搓绳不能松劲,前进不能停顿。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring应用的单元测试相关的知识,希望对你有一定的参考价值。
Spring应用的单元测试 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
单元测试现在越来越被广泛重视起来 而Spring更是将时下比较流行的Junit开元测试框架进行整合下面我简单的介绍一下在Sping中该如何对代码进行单元测试(本节会认为读者已经具备了Junit基础方面的知识) 按照Spring的推荐 在单元测试时不应该依赖于Spring容器 也就是说不应该在单元测试是启动ApplicationContext并从中获取Bean 相反应该通过模拟对象完成单元测试 而Spring就提供了这样一个类供大家继承 下面来看看示例代码 )自动装配的测试用例 代码清单 import springframework beans factory annotation Autowired; import springframework stereotype Service; import tony web dao FooDao; @Service public class FooService @Autowired private FooDao dao; public String save(String name) if(name == null || equals(name)) throw new RuntimeException( Name is null ) return dao save(name) import springframework stereotype Repository; @Repository public class FooDao public String save(String name) return success ; import springframework test AbstractDependencyInjectionSpringContextTests; import tony web service FooService; public class MyTest extends AbstractDependencyInjectionSpringContextTests protected FooService fooService; //set方法 public void setFooService(FooService fooService) this fooService = fooService; //指定Spring配置文件的位置 protected String[] getConfigLocations() return new String[] spring config beans xml ; //测试方法 public void testSave() String str = this fooService save( Tony ) System out print(str) assertEquals( success str) <?xml version= encoding= UTF ?> <beans xmlns=//…> <context:ponent scan base package= tony /> </beans> 代码清单 中定义了FooService java和FooDao java两个Bean已经使用 @Autowired进行了装配 我们的单元测试类MyTest继承了 AbstractDependencyInjectionSpringContextTests类 配置好fooService的set方法并且指定Spring配置文件的位置后 当测试用例运行时我们需要的fooService会自动注入进来 我们只要在testSave方法中直接使用就可以了 还有两外一种写法 代码清单 public class MyTest extends AbstractDependencyInjectionSpringContextTests protected FooService fooService; public MyTest() //启用直接对属性变量进行注入的机制 this setPopulateProtectedVariables(true) protected String[] getConfigLocations() return new String[] spring config beans xml ; public void testSave() String str = this fooService save( Tony ) System out print(str) assertEquals( success str) 代码清单 中我们移除了set方法 增加了一个构造函数 在构造函数中调用父类的方法启用直接对属性变量进行注入的机制 有时我们测试的时候会操作数据库插入一条记录 由于我们不会每次都修改测试的数据 当我们再次插入同样的数据时数据库肯定会要报错了 此时我们需要既能测试又能不让测试的数据在数据库中起作用 Spring就知道我们的这个需要 为我们准备了AbstractTransactionalSpringContextTests这个类 代码清单 import springframework test AbstractTransactionalSpringContextTests; import tony web service FooService; public class MyTest extends AbstractTransactionalSpringContextTests protected FooService fooService; public MyTest() this setPopulateProtectedVariables(true) protected String[] getConfigLocations() return new String[] spring config beans xml ; //测试方法中的数据操作将在方法返回前被回滚 不会对数据库产生永久性数据操作 下一//次运行该测试方法时 依旧可以成功运行 public void testSave() String str = this fooService save( Tony ) System out print(str) assertEquals( success str) 这样就可以在方法返回之前将测试数据回滚 以保证下次单元测试的成功 cha138/Article/program/Java/ky/201311/28838相关参考
知识大全 Spring+Hibernate的单元测试JUnit
Spring+Hibernate的单元测试JUnit 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 通过Spring2.5对单元测试的Annotation支持进行TDD开发
通过Spring2.5对单元测试的Annotation支持进行TDD开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
进行Struts应用程序单元测试开发 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一引言 测
知识大全 利用spring2.5和Reflection简化测试中的mock[3]
利用spring2.5和Reflection简化测试中的mock[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
知识大全 利用spring2.5和Reflection简化测试中的mock[2]
利用spring2.5和Reflection简化测试中的mock[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
知识大全 利用spring2.5和Reflection简化测试中的mock[1]
利用spring2.5和Reflection简化测试中的mock[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
JBuilder2005单元测试之创建测试固件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
JBuilder2005单元测试体验之测试配置 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在
知识大全 单元+期末复习与测试答案/八年级上数学/北版/吉林出版,注意,我要答案
单元+期末复习与测试答案/八年级上数学/北版/吉林出版,注意,我要答案!单元+期末复习与测试题目/八年级上数学/北版/吉林出版,注意,我要题目!我要详细的题目单元+期末复习与测试答案/八年级上语文/人
使用MOCK对象进行单元测试 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 出了什么问题?&nb