1 现在遇到测试数据库。
insert:先调用函数插入,再test函数自己取出,然后assert。
update:先test函数自己插入数据,然后调用函数update,之后将其取出与期望结果做对比。
select:先test函数自己插入数据,然后调用函数select,之后将其与期望结果做对比。
delete:先test函数自己插入数据,然后调用函数delete,将数据库中剩余的数据取出,与期望结果做对比。。
还有一种方法:
将访问数据库和组合sql语句的功能分到2个函数中,对访问数据库的函数进行mock,让其直接返回传给他的参数,也就是组合后的select语句。比较期望的sql语句与实际的sql语句是否一致。
2 尽量将实际的代码与变化相分离。
比如实际测试中,测试数据是多种多样的,对应的期望结果也是多种多样的,我们可以将测试数据和期望结果分别放在文件中。。这样变化的只有数据文件,我们只需要编写不变的代码,并将文件的格式转化为代码中使用的格式 。这部分的功能相当于接口。