@songying
2018-07-18T11:28:00.000000Z
字数 334
阅读 1123
单元测试
http://jxy.me/2016/05/06/db-unit-test/
使用独立于生产环境的数据库测试。一种思路是每次运行测试的时候新建数据库和表,然后在测试结束的时候删除数据库。如果有用 ORM ,可以用sqlite 完成这项工作。
另一种思路是用固定的数据库,然后把测试运行在一个事务内,然后每个 TestCase 运行结束的时候把事务回滚掉。不过这样会影响你代码里的事务,所以要看情况来定。这么做的好处是可以极大降低编写测试时的心智负担,数据库的状态在写每个 TestCase 的时候都可以轻易猜到而不用理会众多测试对数据库状态的改变。2. 关于固定数据的问题,一般都是 Fixture 来解决,这个框架里一般也有解决方案,没有的话就自己写个钩子。