rspec и musta - дополняют или альтернативы?

Некоторое время я использовал горчицу, читал и играл с rspec. Я не сделал глубокое сравнение и контраст. Но мне кажется, что между ними есть некоторое совпадение, но они не являются заменой 1-1.

Я рассматриваю возможность написания некоторых модульных тестов в моей системе rails с помощью rspec, не заменяя все существующие тесты, написанные с помощью musta. Просто как способ почувствовать.

Это хорошая идея? Могу ли я постепенно переходить от одного к другому или я напрашиваюсь на неприятности?

Какие-то явные преимущества одного над другим, которые я должен рассмотреть?

Спасибо!

2 ответа

Решение

Я должен возразить против ответа Криса, что они являются альтернативой. В моем Rails-приложении я использую Вместе и Rspec вместе, и они хорошо дополняют друг друга.

Эта комбинация позволяет мне писать краткие однострочные модульные тесты для повторяющихся вещей, таких как ассоциации и проверки, а также иметь полный набор rspec для более сложных спецификаций. Вы получаете лучшее из обоих миров без каких-либо конфликтов.

Проверьте ПОСЛЕДНЮЮ ЧИТАНИЕ, которая показывает, как установить вдоль стороны Rspec. В нем даже говорится, что он предоставляет "Test::Unit- и RSpec-совместимые однострочники, которые тестируют обычные функциональные возможности Rails. В противном случае эти тесты были бы намного более длинными, более сложными и подверженными ошибкам".

Изменить (примеры):

В верхней части моих спецификаций я всегда объявляю свои классовые отношения и проверочные тесты, которые являются краткими и легко читаемыми.

describe Component do

  context 'relationships' do
    it { should belong_to(:technology)}
    it { should have_many(:system_components) }
    it { should have_and_belong_to_many(:variables) }
    it { should have_many(:images).dependent(:destroy) }
    it { should have_many(:documents).dependent(:destroy) }
  end

  context 'validations' do
    it { should validate_presence_of(:make) }
    it { should validate_presence_of(:model) }
    it { should ensure_length_of(:name).is_at_most(100) }
    it { should validate_presence_of(:technology_id) }
  end
end

Тогда у остальной части моей спецификации будут более сложные тесты, где я использую макеты и заглушки, которые приходят из Rspec.

rspec и musta являются альтернативами друг другу. Я также начал с musta, и перейти к rspec так же просто, как s/context/describe/, s/should/it/и ты уезжаешь на гонки. В rspec есть куча трюков, различных интеграций и более сложных сопоставлений, поэтому я использую его чаще в наши дни.

Одно из моих первых разочарований было то, что было почти невозможно найти учебник, который не предполагал Rails и Cucumber. Не задумывайтесь об этом - вы многое можете с этим сделать, но вам не нужно иметь монстра решения, чтобы использовать его.

Другие вопросы по тегам