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. Не задумывайтесь об этом - вы многое можете с этим сделать, но вам не нужно иметь монстра решения, чтобы использовать его.