最近我写了一套单元测试,它依赖于大量的测试数据。该集合包含十二个元素,虽然这听起来并不多,但与测试一起使用时却如此。
每个元素都需要使用唯一值设置多个属性。使用这种方法的问题是创建这组数据的工厂方法是巨大的。
关于这个问题的最佳做法是什么?我的应用程序实际上是通过文件读取数据,但为了测试,我使用了来自内存存储的模拟数据。
有什么建议吗?
最佳答案
你的测试是什么样的?
您确定您正在编写单元测试而不是代码的多个组件的更高级别的测试吗?纯粹的单元测试应该只调用一个方法,并且该方法希望对其他方法的调用有限(可能通过 mocking )。
通过关注尽可能小的单元,您可以编写代码来测试特定的边缘情况。然而,如果您在更高级别进行测试,您通常必须编写所有类型的边缘情况排列。一旦涵盖了所有最小的单元,就可以编写一些更高级别的集成测试,以确保所有这些单元都正确组装。
例如,如果我有一个应用程序读取股票报价的 CSV 文件并对给定日期的所有报价求平均值,我将编写几个测试:
如果我对您的单元测试做出假设,我深表歉意,但根据我的经验,我发现人们所说的单元测试通常不是真正的单元测试,而是集成测试(或者您喜欢称呼它们的任何名称,例如功能测试等)。 )。我个人对编写过于宽泛的测试感到非常内疚,现在每次编写测试时,我都必须强制自己记住一次真正测试一个单元。
关于unit-testing - 大单元测试数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739289/