我知道有哪些优点,当我使用更复杂的系统时,我会使用虚假数据.
如果我正在开发一些简单的东西,我可以轻松地在真实数据库中设置我的环境,并且访问的数据非常小,访问时间不是一个因素,我只运行一些测试.
创建虚假数据是否仍然很重要,或者我是否可以忘记额外的编码并跳过真正的东西?
当我说真正的数据库时,我不是指生产数据库,我的意思是测试数据库,而是使用真实的DBMS和与真实数据库相同的模式.
使用虚假数据而不是真实数据库的原因是:
速度.如果你的测试很慢,你就不会运行它们.模拟数据库可以使测试运行速度比其他情况下快得多.
控制.您的测试需要是测试数据的唯一来源.当您使用假数据时,您的测试会选择您将使用的假货.因此,您的测试无法被破坏,因为有人将数据库置于不熟悉的状态.
订单独立.我们希望我们的测试可以按任何顺序运行.一次测试的输入不应该取决于另一次测试的输出.当您的测试控制测试数据时,测试可以彼此独立.
环境独立.您的测试应该可以在任何环境中运行.您应该能够在火车上,飞机上,家中或工作中运行它们.他们不应该依赖外部服务.使用虚假数据时,您不需要外部数据库.
现在,如果您正在构建一个小型应用程序,并使用真正的数据库(如MySQL),您可以实现上述目标,然后通过各种方式使用数据库.我做.但不要搞错,随着应用程序的增长,您最终将面临模拟数据库的需求.没关系,在你需要的时候去做.YAGNI.只要确保你在需要的时候这样做.如果你放手,你就会付钱.