Пересмешиваем объект приложения Rails с помощью mocha - PullRequest
0 голосов
/ 24 мая 2011

Я пишу генератор, и мне нужно получить макет объекта Rails.application и вернуть Rails.application.class.parent в качестве имени приложения Rails.

def test_model_with_application_namespace
  name = "Dummyapp"
  application = Rails.stubs(:application).class.parent.returns(name)
  run_generator ["file", "--namespaced"]
  assert_file "app/models/myapp/file.rb", /class Dummyapp::File < ActiveRecord::Base/
end

Эточто у меня есть для моего теста.

1 Ответ

0 голосов
/ 24 мая 2011

Вам нужно, чтобы объект, восстановленный Rails.application.class, был имитацией, которая отвечает parent и возвращает name.Прямо сейчас вы просто заглушаете приложение.Вам нужно, чтобы родитель, класс и приложение были ложными.Вероятно, есть более чистый способ сделать это, но я думаю, что это будет делать то, что вы хотите:

 application = Rails.stubs(:application).returns(mock(:class => mock(:parent => name)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...