我有一些ruby文件(a.rb
,b.rb
,c.rb
),它們定義了非常類似的類。 (他們應該測試相同)生成許多幾乎相同的紅寶石單元測試
我已經編寫了一個單元測試來測試這些子類,並且我已經爲每個類以編程方式生成了上下文(請參閱下文) - 我是否應該用編程方式編寫完整的Test Classes?如果是的話,爲什麼如何?
我使用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
等自動代替?如果是這樣,你會如何去做,爲什麼?
您可以將該方法抽象爲一個模塊,測試一次幷包含在類中。 – 2010-08-24 19:02:14