rspec и musta - дополнительные или альтернативы? - PullRequest
8 голосов
/ 06 января 2011

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

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

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

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

Спасибо!

Ответы [ 2 ]

13 голосов
/ 06 января 2011

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

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

Проверьте Должно README , которое показывает, как установить вдоль боковой 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.

0 голосов
/ 06 января 2011

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

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

...