У меня есть несколько файлов ruby (a.rb
, b.rb
, c.rb
), которые определяют очень похожие классы.(Они должны проверять одно и то же)
Я написал модульный тест для тестирования этих подклассов и сгенерировал контексты для каждого из классов программно (см. Ниже) - вместо этого я должен вместо этого программно создать целые классы тестирования?Если да, то почему и как?
Я использую shoulda
расширения для модульного теста, поэтому мои файлы выглядят примерно так:
a.rb
class ItsA
def number
1123
end
end
b.rb
class ItsB
def number
6784
end
end
test_letters.rb
require 'rubygems'
require 'test/unit'
require 'shoulda'
class LettersTest < Test::Unit::TestCase
Dir.glob('letters/*.rb') do |letter|
context "The #{letter} letter file"
setup do
# Here I require the ruby file and allocate
# @theclass to be an instance of the class in the file.
# I'm actually testing JavaScript using Harmony, but
# putting those details in might complicate my question.
end
should "return a number" do
assert @theclass.number.is_a? Number
end
end
end
Это делает работу достаточно хорошо, но должнаЯ делаю некоторые другие jiggerypokery и автоматически создаю LetterATest
, LetterBTest
и т. Д. Вместо этого?Если так, как бы вы поступили и почему?