1

これは私の最初のスタックオーバーフローの質問です。

SendGrid からメールを送信するアプリを作成しています。これを遅延ジョブで解析したいと考えています。

私の懸念は、これをどのように QA するかです。私はCucumberについて読んでいて、それは良い解決策のように思えますが、エンドツーエンドのテストフローを理解できません。

これまでのところ、私はここにいます。

  1. さまざまな種類の電子メール本文を含む TXT ファイルの大きなリストが必要です。
  2. 次に、各 txt ファイルを繰り返し処理し、lib ディレクトリ /mailingjob.rb 内のメソッドに渡されたときに、返されたものが cucumber で定義されたものと一致することを確認します。

これまでのところ、次のようなものがあります。

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

それが私が始めているところです。できれば、次のことを理解するのを手伝ってください。

  1. これらすべての TXT ファイルは、rails プロジェクト ディレクトリのどこに配置する必要がありますか?
  2. ローカル テキスト ファイルを取得し、それを /lib ディレクトリのメソッドに渡し、返される内容がそのファイル パスに設定されている内容と同じであることを確認する方法を示す e2e の例。

ありがとうございました。

4

1 に答える 1

1
  1. testこれらのファイルは、おそらくまたはディレクトリのどこかに保存しますspec(使用するテストフレームワークによって異なります。キュウリについて言及しましたが、私はあまり詳しくありませんが、 というディレクトリを使用していると思いますfeatures)。本当に、どこにでも置くことができますが、test ディレクトリのサブディレクトリのいくつかは理にかなっています。

  2. Cucumber でのテストに慣れていない場合は、Railscastのエピソード 155エピソード 159から始めることをお勧めします。直接の質問に答えるには、テキスト ファイルから電子メールをそのまま読みます。

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

    Rails.rootは常にプロジェクトのルート ディレクトリを参照し、他のファイルやフォルダーへのパスを簡単に作成できるようにします。

于 2011-03-13T22:25:06.080 に答える