SSM框架使用Junit 测试类进行数据库增删改查的测试

SSM框架使用Junit 测试类进行数据库增删改查的测试

1.前言

maven工程的SSM框架整合过程中,往往需要进行测试,测试Dao,Service等层是否有问题。这里就需要了Junit Test。
在这里就记录一下测试方法。

2.正文

测试类和junit一起使用的时候,如果没有设置读取xml配置文件,就会报创建Bean失败的错误,在进行Junit 测试前,往往需要先配置读取spring的核心配置文件,这样才能够启动IOC容器,进行测试。

  1. 搭建Spring测试环境
    在spring配置里面加入mapper/Dao的自动扫描机制,从Spring中拿到mapper/dao:

  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
   
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
   
    <property name="basePackage" value="com.zout.dao" />
  bean>

图示:
SSM框架使用Junit 测试类进行数据库增删改查的测试_第1张图片
2.Maven里面pom.xml导入Spring单元测试模块的依赖:

    
    <dependency>
      <groupId>org.springframeworkgroupId>
      <artifactId>spring-testartifactId>
      <version>4.1.7.RELEASEversion>
    dependency>
  dependencies>

3..测试类添加注解指定xml配置文件的位置,能够自动创建Ioc容器:
二种方式:
1.先创建一个父类,在父类里面读取配置文件创建IOC容器,然后让子类继承即可。
2.也可以直接在一个类的头部声明也可。
在这里我采用 ‘方式一’,比较清晰明了。

  1. 新建测试父类:BookTest.java
    在项目下的test包里面,新建的java测试文件。
package com.zout.test;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 *@class_name:BookTest  
 *@param:配置spring和junit整合,junit启动时加载springIOC容器 spring-test,junit
*@return: 
 *@author:Zoutao
 *@createtime:2018年2月10日
 */
@RunWith(SpringJUnit4ClassRunner.class)
// 告诉junit spring配置文件位置
@ContextConfiguration({ "classpath:spring/spring-dao.xml", "classpath:spring/spring-service.xml" })
public class BookTest {
}

要测试几个模块,就导入相应的class地址,当然如果你的spring配置在同一个文件中,那么只需要导入总的那个即可。
2. 新建测试子类BookDao:BookDaoTest.java

package com.zout.test;

import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.zout.dao.BookDao;
import com.zout.entity.Book;

import java.util.List;

import org.junit.Test;
import org.slf4j.Logger;

/**
 * @class_name:BookDaoTest
 * @param: 以junit Test运行测试
 * @return: 对数据库表操作
 * @author:Zoutao
 * @createtime:2018年2月10日
 */
public class BookDaoTest extends BaseTest {

    //声明日志管理,日志记录
    @SuppressWarnings("unused")
    private Logger logger = LoggerFactory.getLogger(this.getClass());

    //注入BookDao
    @Autowired
    private BookDao bookDao;

    //开始测试,给表,生成数据测试
    @Test
    public void addBook() {
        for (int i = 0; i < 10; i++) {
            Book book = new Book();
            book.setDetail("这是来自一本书的描述" + i);
            book.setName("平凡的世界" + i);
            book.setNumber(i + 100);
            int num = bookDao.addBook(book);
        }
        System.out.println("数据生成完毕");
    }

    //查询数据测试
    @Test
    public void queryById() {
        Book book = bookDao.queryById(101);
        System.out.println(book);
    }

    //查询全部数据测试
    @Test
    public void queryAll() {
        List books = bookDao.queryAll(1, 1000);
        System.out.println(books);
    }

    //更新数据测试
    @Test
    public void updateBook() {
        Book book = new Book();
        book.setBookId(101);
        book.setDetail("这是来自一本书的描述---修改");
        book.setName("平凡的世界---修改");
        book.setNumber(100);
        int num = bookDao.updateBook(book);
    }

    //删除数据测试
    @Test
    public void deleteBookById() {
        bookDao.deleteBookById(100);
    }
}

上面就是整个测试类进行数据库增删改查的测试,
测试举例: addBook模块 (由于在我的表booksystem里面,一开始没有预先准备数据,所以这里采用java代码的方式自动生成数据加入到数据库的表中。)——

选中在bookdaotest.java文件中的addBook()方法上的@Test注解,右键以Junit Test运行。这样就能加入数据到表里。

图示:
SSM框架使用Junit 测试类进行数据库增删改查的测试_第2张图片
SSM框架使用Junit 测试类进行数据库增删改查的测试_第3张图片
在看数据库里的表:
SSM框架使用Junit 测试类进行数据库增删改查的测试_第4张图片

成功插入数据,其他test就是删查改的测试,同样方法测试即可。

You got a dream, you gotta protect it.
如果你有梦想的话,就要去捍卫它 。 ——《当幸福来敲门》

你可能感兴趣的:(java,web,开发,SSM框架)