Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查看是否存在异常';s消息通过Test::Unit匹配Ruby中的已知字符串_Ruby_Unit Testing_Testunit - Fatal编程技术网

查看是否存在异常';s消息通过Test::Unit匹配Ruby中的已知字符串

查看是否存在异常';s消息通过Test::Unit匹配Ruby中的已知字符串,ruby,unit-testing,testunit,Ruby,Unit Testing,Testunit,假设我有一个用Ruby编写的方法,我正在通过Test::unit进行单元测试。此方法可以出于多个原因引发SystemExit,但在异常中唯一标识引发它的原因。我知道我可以这样做来断言引发了异常: assert_raises(SystemExit) { boo() } 但这与boo()抛出SystemExit的所有情况都匹配。我如何区分boo()中止(“原因1”)与中止(“原因2”)的情况?只需用开始..营救。如果需要重复执行,请编写帮助器方法 begin boo() rescue Syst

假设我有一个用Ruby编写的方法,我正在通过Test::unit进行单元测试。此方法可以出于多个原因引发
SystemExit
,但在
异常中唯一标识引发它的原因。我知道我可以这样做来断言引发了异常:

assert_raises(SystemExit) { boo() }

但这与
boo()
抛出
SystemExit
的所有情况都匹配。我如何区分
boo()
中止(“原因1”)
中止(“原因2”)
的情况?

只需用
开始..营救。如果需要重复执行,请编写帮助器方法

begin
  boo()
rescue SystemExit => e
  assert_equal(e.message, "This message")
end

assert\u raises助手已经返回它捕获的异常

e = assert_raises(SystemExit) { boo() }
assert_equal("Reason 1", e.message)

无需亲自动手/抢救。

效果很好-谢谢!我不确定Test::Unit中是否内置了自动执行此操作的功能,但它也可以工作!你可以定义
#断言(用_message)
,我想:)