如果你写一个类似的测试类
class MyTest < Test::Unit::TestCase def setup end def test_1 flunk end def test_1 assert true end end
第一个test_1被忽略.虽然它看起来像一个愚蠢的错误,但它可能发生在复制和粘贴编程中.除了跑步
grep test test_me.rb | wc
并将其与测试单元所运行的测试数量,或使用rcov或heckle,或与-w一起运行进行比较,您如何检测此类问题?
另外,有没有办法指定不应该覆盖测试方法?
编辑:正在测试的方法有一个参数,有6个左右的可能值,测试人员想测试每个场景.这就是使用复制和粘贴编程的原因.我可以设想的唯一替代方案是六元素参数和期望值数组.
您可以利用method_added
随机方法添加到类中时调用的Ruby .您应该可以将某些内容添加到您包含的模块中,但这是在测试类中执行此操作的简单示例.
class MyTest < Test::Unit::TestCase @@my_tests = [] def self.method_added(sym) raise "#{sym} already defined!" if @@my_tests.include? sym @my_tests << sym end def test_foo_1 end def test_foo_2 end def test_foo_1 end end