Должен ли я проверять помощники контроллера или сам контроллер с помощью Rspec? - PullRequest
1 голос
/ 19 октября 2010

У меня есть PathsHelper, который перезаписывает foo_url и foo_path путем обработки дополнительных параметров, а также контекста из текущего URL. Это входит в ApplicationController.

Прямо сейчас у меня есть:

describe ApplicationController do
  describe "#foo_url" do
     ...
  end
  describe "#foo_path" do
     ...
  end
end

Мне интересно, что лучше сделать что-то вроде:

describe PathsHelper do
  describe "#foo_url" do
     ...
  end
  describe "#foo_path" do
     ...
  end
end

Если это так, есть ли какой-нибудь разумный способ установить некоторые переменные экземпляра в тесте помощника, поскольку существуют условия, основанные на текущем URL.

Ответы [ 2 ]

2 голосов
/ 20 октября 2010

Хотя RSpec действительно стремится сосредоточиться на поведении, я все же специфицирую сложных помощников в спецификациях помощников. Вот почему в RSpec существуют вспомогательные спецификации:)

2 голосов
/ 19 октября 2010

Контроллер

Помните, что в RSpec вы указываете поведение и следите за тем, чтобы это происходило так, как вы этого хотите. Такое поведение происходит через взаимодействие с вашим контроллером. Итак, напишите свои спецификации для контроллера и убедитесь, что вы тестируете поведение, которое проявляет помощник.

Вы хотите избежать слишком большого количества задолбаний в ваших классах и объектах. Это одна из главных причин появления RSpec. Люди делали глупые тесты на внутреннее состояние своих классов вместо того, чтобы тестировать на желаемые результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...