Существует ли согласие о средах тестирования для Ruby 1.9.x? [закрытый]

isinstance(o, str) возвратится True, если o будет str или будет иметь тип, который наследовался от str.

type(o) is str возвратится True, если и только если o str. Это возвратится False, если o будет иметь тип, который наследовался от [1 110].

11
задан Telemachus 30 July 2009 в 12:14
поделиться

3 ответа

Есть ли консенсус ? Я бы сказал нет. В сообществе есть сильные голоса в пользу использования TDD / BDD, но даже тогда это не универсально. Фреймворк, вероятно, менее важен, чем применение этой практики в первую очередь.

Я считаю, что minitest - это замена версии 1.9 для Test :: Unit, которая существует только как оболочка для новой библиотеки для обратной совместимости. Я предполагаю, что выбор пути, специфичного для minitest, будет более дальновидным.

RSpec - это несколько другой подход: менее явно пропитанный «традиционными» фреймворками, основанными на xUnit. Стоит потратить некоторое время, чтобы узнать, предпочитаете ли вы это.

Также есть Shoulda . хотя я не знаю, насколько он протестирован на 1.9: это скорее оболочка / расширение для Test :: Unit, так что, вероятно, он сработает.

Конечно, веселье на этом не заканчивается: как только вы Я выбрал тестовый фреймворк, и вам понадобится какой-нибудь имитатор. Или замена фикстуры данных.

Во всех случаях я бы сказал, что любая структура, для которой вы можете найти доказательства регулярных обновлений, открытого, заполненного сообщества и API, который вы не ненавидите, подойдет. Маловероятно, что вас позже расстреляют за то, что вы сделали любой выбор.

6
ответ дан 3 December 2019 в 05:35
поделиться

Я использую Rspec около года. Я перешел с Test :: Unit специально, потому что я мог печатать то, что тестируется в удобочитаемой форме.

Читается как проза. Что для меня большой плюс. Но, как и во всем, результаты будут разными.

describe Model do
  it "should do what I want" do
    this.should == that
    it.should be_nil
    that.should_not be_true
  end
end 

Также, независимо от среды тестирования, вам также следует подумать об инструменте покрытия, таком как RCov . Он интегрируется с rspec и сообщит вам, где ваш код не тестируется.

7
ответ дан 3 December 2019 в 05:35
поделиться

Лично я предпочитаю rspec. Я обнаружил, что сосредоточение моих тестов на поведении действительно помогло мне обойти то, что я пытался сделать.

С rspec go и получите что-то вроде Factory Girl или Machinist для генерации ваших тестовых данных, не используйте фикстуры.

Что касается того, что сказал Майк, проект rspec довольно активен, и новые версии обычно выпускаются с каждой версией rails, чтобы помочь ему идти в ногу с развитием фреймворка.

3
ответ дан 3 December 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: