ruby - 为什么在 RSpec 中弃用了负面的特定异常期望?

标签 ruby rspec deprecated

似乎我可以为 .to 指定异常类,但不能为 .not_to 指定异常类?
具体原因是什么?

 Failure/Error: expect{ smth }.not_to raise_exception SomeExceptionClass
 ArgumentError:
   `expect { }.not_to raise_error(SpecificErrorClass)` is not valid, use `expect { }.not_to raise_error` (with no args) instead

最佳答案

稍微扩展一下 Nakilon 的回答:

这是他们的设计决定。看起来他们认为这不是一个很好的指定测试,因为如果您预计某个错误不会被引发,那么测试将通过如果:

  • 没有出现错误
  • 出现了一些其他错误

...这至少是不精确的。可能您的代码只想做其中一件事情。

无论如何,这似乎是推理——我不想说它有多公平。

关于ruby - 为什么在 RSpec 中弃用了负面的特定异常期望?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26937627/

相关文章:

ruby - 为什么要在框架 Web 服务器前面使用 http 服务器?

javascript - 是否有任何类型的 jQuery.browser 后备?

logging - RSpec:如何测试 Rails 记录器消息期望?

ruby-on-rails - 使用 RSpec 计算页面上的链接

swift 5.0 : 'withUnsafeBytes' is deprecated: use `withUnsafeBytes<R>(. ..)

c# - Unity 5.5 废弃的粒子系统代码

ruby-on-rails - Mongoid + ActiveModel 验证 + I18n,没有正确翻译属性

ruby - Buildr, RSpec——将构建参数传递给测试

ruby - 由外向内呈螺旋状循环

ruby-on-rails - Rails RSpec : Controller Testing,检查是否错误如果由于验证错误而无法创建新记录,则用条目填充模型数组