4

我对 RSpec 很陌生,所以这是一个非常基本的问题。我正在编写一些东西,它解析文件中的大量数据,进行一些处理并返回一个汇总结果,这对 Ruby 来说非常可爱。

我想围绕此代码进行一些 RSpec 测试,但我不想在测试中模拟数据。这些文件又大又复杂,因为我希望代码可以处理这些文件,所以我想直接在测试中处理一些文件。

我已经做了很多谷歌搜索,但我找不到任何针对这种情况的最佳实践示例——我发现的所有内容似乎都建议使用模拟数据。

因此,需要明确的是,我想知道针对实际测试数据文件运行 RSpec 测试的最佳实践,而不是针对在测试代码中模拟的东西本身。我非常高兴打开文件,阅读它们等,这不是问题。我真正感兴趣的是如何最好地构建我的测试和测试数据目录。

4

1 回答 1

4

我过去所做的是在 specs 文件夹中创建一个数据文件夹来保存我想要读取的文件。

我理解您想要使用实际文件的动机,因为在实际文件中通常存在您自己可能不会想到的各种小边缘情况。我的建议是进行一个打开文件并测试所需信息的测试。但是,如果该测试失败,请创建一个新测试来解决您找到的文件中的特定问题。

例如,假设在尝试打开文件时,您发现它不能正确处理非 UTF8 数据。使用有问题的行作为使用的数据创建一个新测试(而不是简单地将其作为更大测试的一部分)。这样,如果它再次失败,您将能够准确指出痛点在哪里。

于 2012-04-13T16:31:33.753 回答