ruby RSpec -根据实际文件而不是模拟数据进行测试

yrdbyhpb  于 2022-12-12  发布在  Ruby
关注(0)|答案(2)|浏览(159)

我是RSpec的新手,所以这是一个非常基本的问题。我正在写一个从文件中解析大量数据的程序,做一些处理,并返回一个总结的结果,这对Ruby来说是非常有趣的。
我想围绕这段代码进行一些RSpec测试,但我不想在测试中模拟数据。这些文件又大又复杂,因为我想让代码使用这些文件,所以我想在测试中直接使用一些文件。
我做了很多谷歌搜索,但我无法找到任何针对这种情况的最佳实践的例子--我找到的所有东西似乎都是模拟数据。
所以,为了清楚起见,我想知道对实际的测试数据文件运行RSpec测试的最佳实践,而不是对测试代码本身模拟的东西。我非常乐意打开文件,阅读它们,等等,这不是问题所在。我真正感兴趣的是如何最好地构建我的测试和测试数据目录。

fivyi3re

fivyi3re1#

我过去所做的是在specs文件夹中创建一个数据文件夹来保存我想要从中读取的文件。
我理解您想要使用实际文件的动机,因为实际文件中通常会有各种您自己可能想不到的小问题。我的建议是进行一个测试,打开文件并测试您想要的信息。但是,如果测试失败,则创建一个新的测试来解决您在文件中发现的特定问题。
例如,假设在尝试打开文件时,您发现它不能正确处理非UTF8数据。创建一个新的测试,将有问题的行作为使用的数据(而不是简单地将它作为更大测试的一部分)。这样,如果它再次失败,您将能够准确地指出痛点在哪里。

r1wp621o

r1wp621o2#

Rails有一个test/fixtures目录,用于存放结构化的示例数据。https://guides.rubyonrails.org/testing.html#fixtures-in-action

相关问题