【发布时间】:2010-12-18 21:02:27
【问题描述】:
例如,在运行这些测试时,我想确保test_fizz 始终首先运行。
require 'test/unit'
class FooTest < Test::Unit::TestCase
def test_fizz
puts "Running fizz"
assert true
end
def test_bar
puts "Running bar"
assert true
end
end
更新:我为什么要这样做?我的想法是,某些测试(那些测试更简单、更基本的方法)的早期失败将使追踪系统中的问题变得更容易。例如,bar 的成功取决于fizz 是否正常工作。如果fizz 坏了,我想马上知道,因为不用担心bar,它也会失败,但测试结果的输出要复杂得多。
【问题讨论】:
-
为什么要这样做?我当然希望您的测试顺序不会影响测试结果。如果是这样,那你就做错了。
-
我同意 gotgenes。我看到了你的更新,但是如果 bar 依赖于 fizz,你应该测试 fizz,然后在测试 bar 时存根 fizz 的结果以避免交叉污染,而不是确保你的测试以特定的顺序运行。如果 fizz 正在测试更高级别的功能,也许您应该将其改为功能测试。
-
拥有一套有序的断言很好,但它不再是单元测试。它的功能/集成/行为(无论你想怎么称呼它......都是一样的)。您应该使用为它设计的工具,例如 rspec
标签: ruby unit-testing testunit