美文网首页
使用Spring Boot进行单元测试2 (Dao层的简单测试

使用Spring Boot进行单元测试2 (Dao层的简单测试

作者: sT丶 | 来源:发表于2017-08-03 18:15 被阅读0次

    项目结构搭建

    参考前面的搭建Spring Boot项目。
    http://www.jianshu.com/p/c5a380747e01
    具体目录如下:

    image.png

    编写测试代码

    一般测试文件会放在和src/main 同级的test文件夹下,具体项目路径和src/main /java路径一样,只是类文件名称后面一般习惯性加上Tests。

    //简单验证结果集是否正确
    Assert.assertEquals(3, userMapper.getAll().size());
    
    //验证结果集,提示
    Assert.assertTrue("错误,正确的返回值为200", status == 200); 
    Assert.assertFalse("错误,正确的返回值为200", status != 200);  
    
    image.png

    具体代码如下,需要注意的有三个地方。

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class UserMapperTests {
    
        @Autowired
        private UserMapper userMapper;
    
        @Test
        public void testFind() {
            System.out.println("测试开始");
            //简单验证结果集是否正确
            Assert.assertEquals(2, userMapper.getAll().size());
    
    
    
        }
    }
    
    • @RunWith(SpringRunner.class)注解,指定当前运行环境
    • @SpringBootTest注解,指定当前类是一个测试类
    • @Test注解,指定当前方法是一个单元测试方法

    开始测试

    这里我们直接注入Mapper(Dao)层代码,然后在Test方法中进行测试。

     System.out.println("测试开始");
            //简单验证结果集是否正确
       Assert.assertEquals(2, userMapper.getAll().size());
    

    这里使用junit的Assert断言方法,直接断言当前Mapper的getAll()方法能获取到两条数据(假设数据库中确实只有两条数据)。右键Run,此时可以看见只是简单输出了测试开始,而断言则并没有输出任何东西,这个就是unix的哲学思想,没有消息就是最好的消息,意思是测试已经通过。

    image.png
    那么假如我们断言数据库由三条数据时,会发生什么呢?
    修改代码,断言为3.
    Assert.assertEquals(3, userMapper.getAll().size()); image.png

    可以看到,报错了,测试不通过,结果是2,但是断言为3,这样我们就完成了一个Mapper层的简单测试。
    下面我们进行增删改的测试。

    • 增加的测试
        @Test
        @Rollback
        public  void testInsert(){
            System.out.println("测试新增");
            User user=new User();
            user.setUserName("测试新增1");
            user.setPassWord("123456");
            Assert.assertEquals(1, userMapper.insert(user));
        }
    
    • 更新的测试
        @Test
        @Rollback
        public  void testUpdate(){
            System.out.println("测试更新");
            User user=new User();
            user.setId(1);
            user.setUserName("测试编辑1");
            user.setPassWord("123456");
            Assert.assertEquals(1, userMapper.update(user));
        }
    
    • 删除的测试
        @Test
        @Rollback
        public  void testDel(){
            System.out.println("测试删除");
            Assert.assertEquals(1, userMapper.delete(1));
        }
    
    

    相关文章

      网友评论

          本文标题:使用Spring Boot进行单元测试2 (Dao层的简单测试

          本文链接:https://www.haomeiwen.com/subject/emiplxtx.html