mock
mock测试:就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
mock对象:这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。
在Java阵营中主要的Mock测试工具有JMock,MockCreator,Mockrunner,EasyMock,MockMaker
Test Fixture
运行被测软件所需要的一切东西。这个“东西”不单只是数据,同时还包括对被测软件的准备。
Spring2.5版本和JDK5.0环境下,提供了测试框架TestContext
使用TestContext所带来的好处:
1.跨越各个测试案例执行期的Spring IOC容器缓存(不用每进行一次测试就初始化一次容器)
2.测试fixture的依赖注入
3.便利的事务管理(会默认在测试完毕后回滚测试中对数据库所作的操作)
4.提供了特有的Spring支持类
测试框架TestContext是与JUnit4.4相结合的,是辅助JUnit更好的进行测试。
主要版本需要Spring2.5与JUnit4.4 JUnit高于4.4版本的可以不好使。
需要导入spring-framework-2.5.6/dist/modules/下的spring-test.jar包。
@ContextConfiguration
标注在测试类上,用于告诉测试类在哪个路径下加载Spring的初始化Bean
@ContextConfiguration(locations={“xx/yy/beans1.xml”,"xx/yy/beans2.xml”}) 路径是相对于WEB-INF的
如果配置文件在classpath下 则写为:
@ContextConfiguration(locations={"classpath:beans.xml"})
@Resource
标注的对象将会从Spring容器中注入
@Before
将会在@Test方法之前执行,用于初始化测试环境,与@Test方法运行在一个事务中
@After
将会在@Test方法之后执行,与@Test方法运行在一个事务中
@NotTransactional
标注的方法不将工作于事务环境下。
继承的父类AbstractTransactionalJUnit4SpringContextTests 中提供了simpleJdbcTemplate对象,可以方便的进行简单数据库操作,可用于插入测试数据等。
simpleJdbcTemplate只支持JDK5.0或以上版本。
同时AbstractTransactionalJUnit4SpringContextTests 也提供了一些便捷方法来进行数据库访问
protected int countRowsInTable(String tableName) :计算数据表的记录数。
protected int deleteFromTables(String... names):删除表中的记录,可以指定多张表。
protected void executeSqlScript(String sqlResourcePath, boolean continueOnError):执行 SQL 脚本文件,在脚本文件中,其格式必须一个 SQL 语句一行。
示例代码