用测试驱动的方法去写程序,要求先写测试用例,再实现程序。在编写测试用例的时候,要求测试用例对周围的环境的依赖性尽量少,也就是说,在开发数据库系统时,不能依赖数据库中已经存在的数据。那么,我的问题是:如果开发一个ERP系统,会有很大一部分是围绕订单来处理的,如果用TDD开发订单处理的某个部分,需要前面几个步骤先完成,会用的前面几个步骤所得到的很多数据,分别存在数据库中10多张表中,那么,你在开发其中一个小功能的时候,编写的测试用例需要初始化这10多张表,然后测试自己要完成的模块。这样的话,有写模块会差不多要初始化整个数据库才能测试。
测试驱动作为敏捷开发的一部分,如果这样的话,开发就不敏捷了,不知碰到这种情况的时候,应该怎么处理,期待解答。
谢谢
一般不对数据层做测试,测试针对的是逻辑的正确性,因此对业务层进行测试,而业务层依赖的数据层则做MOCK即模拟,将所有步骤的结果准备好供业务层获取,作为业务的输入,最后确保业务的输出是正确的即可
Mock
@Gray Zhange
我也有这问题,如果不对数据层做测试,那如果数据层提取数据的代码有错呢?比如某个DAL中的方法期望能取回10条记录,事实上确因为sql错误一条都没取回来,这要怎么解决呢?