1

这是我的第一个 stackoverflow 问题。

我正在构建一个应用程序,该应用程序从 SendGrid 发布了一封电子邮件,然后我想在延迟的工作中对其进行解析。

我关心的是我如何对此进行质量检查。我一直在阅读有关 Cucumber 的内容,这听起来是一个很好的解决方案,但我无法弄清楚端到端的测试流程。

这就是我到目前为止的位置。

  1. 我想要一个包含各种类型电子邮件正文的 TXT 文件的大列表
  2. 然后我遍历每个 txt 文件,并确保当传递给我的 lib 目录 /mailingjob.rb 中的方法时,返回的内容与 cucumber 中定义的内容匹配。

所以我到目前为止是这样的:

expected = File.open('???/mail1.txt', 'r') do |f|
  f.read
end

这就是我要开始的地方。因此,如果可以,请帮助我理解以下内容:

  1. 所有这些 TXT 文件应该位于 rails 项目目录中的什么位置?
  2. 一个 e2e 示例展示了如何获取本地文本文件,将其传递给 /lib 目录中的方法,然后确保返回的内容等于为该文件路径设置的内容。

谢谢谢谢你能提供的任何帮助

4

1 回答 1

1
  1. 我可能会将这些文件存储在您的testorspec目录中的某个位置(取决于您使用的测试框架;您提到了 Cucumber,我不太熟悉,但我认为它使用了一个名为 的目录features)。真的,你可以把它们放在你想要的任何地方,但是你的测试目录的一些子目录是有意义的。

  2. 如果你不熟悉 Cucumber 的测试,我推荐 Railscast第 155集和第 159 集来帮助你入门。要回答您的直接问题,您可以从文本文件中读取电子邮件

    email_text = File.read("#{Rails.root}/test/path/to/email.txt")
    

    Rails.root总是引用你项目的根目录,并且可以很容易地构建到其他文件或文件夹的路径。

于 2011-03-13T22:25:06.080 回答