现在,我只是在执行前后两次使用assert_equal
,并且不会造成太大伤害。但我之前使用过RSpec,并且喜欢expect{}.to change
成语的可读性。我不能简单地在这个项目中使用RSpec - 不是我的项目,而不是我的堆栈。
是否有更惯用的方式用Test :: Unit表示预期的变化/增量?
谢谢。
我正在使用Ruby 1.8.7
答案 0 :(得分:2)
要使用测试单元完成assert_change,您可以自己动手。
这是让您入门的示例代码。根据您的喜好进行调整。
def assert_change valuer, delta, changer, message = nil
expect = valuer.call + delta
changer.call
actual = valuer.call
assert_equal expect, actual, message
end
用法:
@x = 123
def foo
@x += 456
end
assert_change(lambda{@x}, 456, lambda{foo})