And*_*imm 3 ruby unit-testing testunit
如果你写一个类似的测试类
class MyTest < Test::Unit::TestCase
def setup
end
def test_1
flunk
end
def test_1
assert true
end
end
Run Code Online (Sandbox Code Playgroud)
第一个test_1被忽略.虽然它看起来像一个愚蠢的错误,但它可能发生在复制和粘贴编程中.除了跑步
grep test test_me.rb | wc
Run Code Online (Sandbox Code Playgroud)
并将其与测试单元所运行的测试数量,或使用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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
759 次 |
| 最近记录: |