Какие инструменты тестирования делают в Ruby? - PullRequest
2 голосов
/ 30 июня 2010

Под этим я подразумеваю, какие инструменты предназначены для модульного тестирования, а для BDD даже есть четкое разделение?

Я только изучаю Ruby из C #, и инструменты, с которыми я знаком, существуют в стиле xUnit для чистого модульного тестирования / TDD и Cucumber / SpecFlow для BDD / интеграционного тестирования. Конечно, вы можете использовать инструменты модульного тестирования для интеграционного тестирования, если хотите.

Основными инструментами тестирования, с которыми я столкнулся на Ruby, являются Test :: Unit, RSpec и Cucumber (очевидно, их гораздо больше, но они, похоже, являются самыми популярными, и, следовательно, вероятно, с них можно начать) .

Я не ищу здесь длинный список инструментов - если есть основной соперник, которого я пропустил, то, пожалуйста, скажите мне, но я бы предпочел сделать его простым на этом этапе, чем начинать использовать бета-версию Tool Z с Расширения Library X, работающие на платформе MegaChode »или что-то еще. В конце концов, я всего лишь бедный смущенный парень .Net!

Понятно, что Test :: Unit был разработан для модульного тестирования, а Cucumber - для BDD. Но я не уверен насчет RSpec - некоторые люди, похоже, используют его как инструмент для низкоуровневого модульного тестирования, а другие - для BDD более высокого уровня. В то же время некоторые люди, похоже, используют Test :: Unit (и аналогичные) с дополнительными библиотеками для BDD.

Чтобы дать вам представление о том, откуда я родом, я вижу, что вы можете написать более функциональные, тестируемые спецификации (которые может понять деловой человек) с помощью инструмента BDD, а затем выполнить низкоуровневый уровень, TDD, ориентированный на разработчиков, с вашим модульным инструментом тестирования, когда вы реализуете функциональность, необходимую для вашего Cuke (или чего-либо еще).

Есть ли общепринятый способ сделать это в Ruby, или мне нужно забыть о таком сумасшедшем понятии и использовать то, что, кажется, делает эту работу?

Ура, Грант

Ответы [ 2 ]

4 голосов
/ 30 июня 2010

Я думаю, что большинство Rubyists для тестирования стандартизировали RSpec, а не Test :: Unit.Если вы работаете с Rails-приложениями, есть RSpec-Rails, а затем Cucumber, который вы можете поместить поверх него.

Возьмите копию Книги Rspec @ http://www.pragprog.com/titles/achbd/the-rspec-book

0 голосов
/ 08 декабря 2016

MiniTest содержит интерфейс тестирования в стиле xUnit и spec (с возможностью объединения их обоих в одном файле).

Он включенкак часть стандартных гемов начиная с Ruby2.2.

Оба могут быть включены в один и тот же файл, что облегчает преобразование между стилями или другими инструментами тестирования, такими как RSpec и Test :: Unit

require 'minitest/autorun'

describe Math do
  describe 'addition' do
    it '1+1=2' do
      (1+1).must_equal 2
    end
  end
end

class MathTest < Minitest::Test
  def test_1_plus_1_equal_2
    assert_equal 2, 1+1
  end
end

MiniTest также включает в себя насмешливый фреймворк (хотя я предпочитаю р-р )

...