发表于: 2017-08-19 23:52:03
2 1080
今天完成的任务
1.使测试方法按指定顺序执行
昨天同时测试7个方法的时候,方法是按随机顺序执行的,导致最后一个测试失败了。今天上网搜了一下解决办法,可以使用注解@FixMethodOrder修改测试方法的执行顺序。
@FixMethodOrder有三个可选参数,分别是
1)MethodSorters.DEFAULT 按随机顺序执行,也是junit的默认项
2)MethodSorters.JVM 按代码定义的方法顺序执行
3)MethodSorters.NAME_ASCENDENG 按方法名字字母顺序执行
因为增删改查必须按一定顺序执行,所以使用第二个参数,让测试方法按编写测试代码的顺序进行。在测试类上面增加标红代码,如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:ApplicationContext.xml")
@FixMethodOrder(MethodSorters.JVM)
public class DaoTest {
然后按照新增数据、查所有数据、改数据、按ID查、删数据、按名字查数据、清空表单的顺序调整代码位置,大纲:
.png)

单元测试结果:
2.在Spring中配置log4j
日志输出位置为控制台
1)在日志的配置文件log4j.properties中加入如下代码,可以过滤Spring框架开始时的一大串信息
.png)

2)部分代码展示:
3)结果展示:
3.用配置文件操作数据库
还是在昨天写好的项目下面新增的。新编写一个用XML映射方式的接口XmlDao,和映射文件StudentMapper。
1)修改Spring的配置文件
在ApplicationContext.xml中id为“slqSessionFactory”的bean新增一条属性“mapperLocations”,该属性可以自动扫描指定文件下的映射文件:
.png)

2)新的接口:
.png)

3)映射文件
因为使用的是单元测试,重点在“单元”两个字,就是要先通过一个测试,确保ApplicationContext.xml和映射文件的配置没问题后,再编写其他测试方法。
先测的一个获取所有数据的方法.getAllStudent()
①首先是映射文件:
.png)

②然后是测试方法
.png)

单元测试失败...
③单元测试遇到两个问题:
A.写好代码后跑单元测试报错,提示说非法绑定。。
.png)

原因是映射文件的命名空间和我的接口名字不一样,所以说非法绑定,把命名空间的名字改过来就好了
.png)

B.修改好上面的问题后,出现新的报错,新的报错如下:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.jnshu.task1.test.XmlDaoTest': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'dao' must be of type [com.jnshu.task1.dao.XmlDao], but was actually of type [$Proxy19]
原因是创建的配置文件实例名字不能再取为dao,这样就和注解方式的实例dao重合,导致报错。
.png)

把接口XmlDao的实例名字改为dao2,单元测试通过。
.png)

.png)

.png)

4)把其他测试方法补齐,添加注解@FixMethodOrder(MethodSorters.JVM)指定测试方法运行顺序
此时工程目录如下:
遇到的问题
上面已经提了,已经解决了
收获
把两种接口整合在一起,现在来看,注解的方式比XML方式简单一些
明天的计划
任务1提交审核
完成任务1其他零碎的工作
进度
当前进度:准备提交审核
任务开始时间2017.08.08
预计任务结束时间2017.08.20
禅道:http://task.ptteng.com/zentao/my-task.html
评论