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

2017-08-03  本文已影响0人  sT丶

项目结构搭建

参考前面的搭建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());



    }
}

开始测试

这里我们直接注入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));
    }

上一篇下一篇

猜你喜欢

热点阅读