ruby-on-rails - RAILS - assert_raise 检查异常的深度

标签 ruby-on-rails ruby assertions

下面的测试是否应该断言抛出了异常?在我的电脑上它没有,我想知道这是否是预期的行为。

   def a
     raise RuntimeError
   end

   def b
     begin
       a
     rescue RuntimeError
       puts "bummer"
     end
   end

   test "assert this" do
     assert_raises RuntimeError do
       b
     end
   end

最佳答案

这是一种预期的行为。 assert_raise 不检查是否在脚本执行的某处引发了异常,它检查该 block 是否引发了给定类型的未捕获异常。

换句话说,它只有在您删除 rescue 语句时才有效。

关于ruby-on-rails - RAILS - assert_raise 检查异常的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1901214/

相关文章:

mysql - 使用 redis 将所有用户通知保存在列表中?

ruby-on-rails - 在 Rails 中使用 STI 时出现 ActiveRecord::SubclassNotFound 错误

ruby-on-rails - ActionMailer 在 development.log 中发送电子邮件 "sent",但未收到

c++ - 断言在 VS2008 但不是在 VS2005

ruby-on-rails - 关联关联的计数器缓存

ruby-on-rails - Heroku 上的 Rails : session variables nil

python - 我如何在 Python 或 Ruby 上查询没有 Selenium 的结果

mysql - 为什么这个:id in Rails not work with Postgresql but it does work with MySQL?

iphone - 找不到导致 "active assertions beyond permitted time"崩溃的错误

testing - 如何使用 hamcrest 断言对象相等