Могу ли я переключить среду тестирования приложения Rails? - PullRequest
3 голосов
/ 02 апреля 2011

Когда я запустил свое Rails-приложение, я выбрал RSpec в качестве моей среды тестирования из-за всей этой шумихи.Теперь я пытаюсь написать больше тестов и обнаружил, что не люблю писать тесты таким образом.Я хотел бы вернуться к стандартной тестовой среде.

Как я могу сделать этот переключатель?Я использую Rails 3.0.5

Ответы [ 3 ]

21 голосов
/ 02 апреля 2011

Не знаю, знаете ли вы, но если вы используете утверждения вместо rspec-ожидания (obj.should matcher), которые вы уже можете сделать без какой-либо дополнительной настройки, то единственное отличие заключается в следующем:

# w/ Test::Unit
class FooControllerTest < ActionController::TestCase
  test "something or other" do
    ...
  end
end

# w/ RSpec
describe FooController do
  it "does something or other" do
     ...
  end
end

Все остальное, что вы можете написать, используя Test :: Unit в Rails, вы можете написать, используя RSpec точно так же.

Затем вы получаете все несинтерпретативные преимущества RSpec, такие как читаемый вывод, надежный инструмент командной строки с собственным выводом -help и т. Д.

Я понимаю, что это не отвечает на вопрос, который вы задаете, но я надеюсь, что это поможет вам в вашем процессе принятия решения.

2 голосов
/ 02 апреля 2011

Это не та или иная ситуация.Вы можете иметь RSpec и Test :: Unit тесты в одном приложении Rails, так что просто начните писать Test :: Unit tests.Не нужно переключаться, просто начните новую разработку с Test :: Unit.

В зависимости от того, как вы выполняете свои тесты, настройку CI и как вы изменили свое приложение, это может быть более или менее изменено, но впрактиковать это просто.

0 голосов
/ 24 ноября 2012

в config / application.rb

module AppName
  class Application < Rails::Application

    generate.test_framework :test_unit, :fixture => false # :rspec <- before

    ...

Новые модели / контроллеры генерируют базовый тест / * файлы

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