Unit testing 单元测试建议
我有一个由大约50-60个表组成的大型数据库支持的中等到高度复杂的应用程序。我试图在代码上获得尽可能多的单元测试覆盖率,但我真的很难模拟数据集和一些关键概念。实际上,一想到要实现完整的单元测试覆盖率,我就感到焦虑,因为我不知道如何做到以下几点: 1) 测试每个功能的每个可能场景和数据组合。即,我们的一个函数返回一个基于大约20个输入的值,每个输入有3个不同的可能值。我们怎么可能测试所有类似的值呢?如果我可以测试所有这些组合,我必须在测试中编写完全相同的逻辑代码,以确定它是否应该通过(这不是多余的吗?) 2) 数据和结果随时间而变化!例如,如果我查询上周租车的员工人数,随着时间的推移,我总是会返回不同的结果。我如何编写一个单元测试,知道如果结果从一天到下一天会发生变化,那么预期会有多少结果Unit testing 单元测试建议,unit-testing,tdd,Unit Testing,Tdd,我有一个由大约50-60个表组成的大型数据库支持的中等到高度复杂的应用程序。我试图在代码上获得尽可能多的单元测试覆盖率,但我真的很难模拟数据集和一些关键概念。实际上,一想到要实现完整的单元测试覆盖率,我就感到焦虑,因为我不知道如何做到以下几点: 1) 测试每个功能的每个可能场景和数据组合。即,我们的一个函数返回一个基于大约20个输入的值,每个输入有3个不同的可能值。我们怎么可能测试所有类似的值呢?如果我可以测试所有这些组合,我必须在测试中编写完全相同的逻辑代码,以确定它是否应该通过(这不是多余的
有人说,如果您在单元测试中遇到困难,说明您做得不对,那么请告诉我如何最好地处理这些情况。尽管我有上述评论,但还是有一些想法:
- 在单元测试中,您测试“单元”。单元测试的一大技巧是确定“单元”到底是什么。那么你们的单位是什么?提示:它们几乎从不包含涉及数据库的内容
- 确定适当的单位是防止结果和数据更改问题的关键。如果一个核心功能发生了变化,那么当然,单元测试需要修改甚至删除,否则它应该是最低限度的维护
- 组合和排列-测试您实际需要测试的东西。您可以为此编写一些帮助程序代码。然而,您并不总是需要绝对地测试所有东西,测试到有用的程度,而不需要进一步测试李>
- 我发现高水平的测试很有用,但您可能不会。您在单元测试方面的经验和能力决定了测试的有用程度