我在下面的代码中使用Ruby Unit测试。
assert_equal(x, 'strin')
如果此测试失败并且测试仍然失败,我想更改变量。我怎样才能做到这一点? 我在python中使用以下代码做了同样的事情。
try:
self.assertEqual(self.client.testString(''), '')
except AssertionError, e:
test_basetypes_fails = True
raise AssertionError( e.args )
答案 0 :(得分:2)
Ruby的#assert_equal
库中的test/unit
方法在失败的断言中引发Test::Unit::AssertionFailedError
或(MiniTest::Assertion
在ruby 1.9.3或更高版本中),因此:
begin
assert_equal(x, 'strin')
rescue Test::Unit::AssertionFailedError
# whatever code
raise
end
答案 1 :(得分:1)
Ruby的单元库中的assert_equal
方法不会引发异常,因此您无法使用在python中执行的相同方法,但您想要做的事情很简单。你真的只是检查两个值的相等性并根据它做一些事情:
if x == 'strin'
# do something here when the "assert" succeeds
else
test_basetypes_fails = true
assert_equal(x, 'strin') # fail the test as normal
end
重点是直接使用==
执行初始相等性检查而不会使测试失败。