我有一个相对较大的web api应用程序,即它目前有大约300个表。
应用程序的编写方式使得它不使用任何存储过程,并且旁边没有视图,即业务逻辑全部在应用程序代码中。它使用存储库模式,因此为单元测试创建模拟数据相对容易。
然而,管理模拟数据非常困难,而且任何特定的个人都很难深入了解已存在的数据。我们已经尝试将测试数据移动到模拟工厂中,以便将其存储在单个文件中,然后根据需要加载各种测试(即,给定的测试只需要某个数据子集,因此它只会要求那个子集)。
尽管如此,数据管理仍然相当复杂,断言从应用程序返回的数据也很脆弱。例如,假设我们的模拟数据中定义了10个客户,其中2个被标记为非活动。我们可能有一个测试用例,它测试应该返回所有活动客户的方法应该返回8个实例。但是,如果开发人员必须向我们的测试数据添加新实例,这将破坏现有的测试/断言。
有没有人有管理这方面的经验,或者有任何关于此事的文章?
答案 0 :(得分:0)
听起来您正在创建用于多个测试的测试数据。这不是最好的解决方案。您应该在每个测试的基础上创建所需的数据。测试数据构建器模式应该在这里帮助您。这个link描述了如何使用测试数据构建器。此外,Mark Seemann编写了一个库,可以帮助构建这种称为autofixture的模拟数据。
他在advanced unit testing上有关于PluralSight的精彩视频。如果您有权访问PluralSight,我建议您观看视频。