Огурец проверить парсинг электронной почты? - PullRequest
1 голос
/ 14 марта 2011

это мой первый вопрос stackoverflow.

Я создаю приложение, в которое отправляется электронное письмо от SendGrid, которое я затем хочу проанализировать в отложенной работе.

Меня беспокоит то, какя проверяю это.Я читал о Cucumber, и это звучит как хорошее решение, но я не могу понять, как закончится тестовый поток.

Вот где я до сих пор.

  1. Iхочу иметь большой список TXT-файлов, которые включают в себя различные типы тела письма
  2. . Затем я перебираю каждый txt-файл и проверяю, что при передаче методу из моего каталога lib /mailingjob.rb, чтовозвращается совпадает с чем-то определенным в огурце.

Так что у меня есть что-то вроде:

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

Вот с чего я начинаю.Поэтому, если вы можете, пожалуйста, помогите мне понять следующее:

  1. Где все эти TXT-файлы должны находиться в каталоге проекта rails?
  2. Один пример e2e, показывающий, как получить локальныйтекстовый файл, передайте его методу в каталоге / lib, а затем убедитесь, что возвращаемое значение равно значению, указанному для пути к этому файлу.

Спасибо, спасибо за любую помощь, которую вы можете предоставить

1 Ответ

1 голос
/ 14 марта 2011
  1. Я бы, вероятно, сохранил эти файлы где-нибудь в вашем каталоге test или spec (в зависимости от того, какую среду тестирования вы используете; вы упомянули Cucumber, с которым я не очень знаком, но я думаю, что он использует каталог с именем features). На самом деле, вы можете разместить их где угодно, но подкаталог вашего тестового каталога имеет смысл.

  2. Если вы не знакомы с тестированием с Cucumber, я рекомендую Railscast эпизод 155 и эпизод 159 , чтобы начать работу. Чтобы ответить на ваш прямой вопрос, вы должны прочитать письмо из текстового файла как таковое

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

    Rails.root всегда относится к корневому каталогу вашего проекта и позволяет легко создавать пути к другим файлам или папкам.

...