- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
有时我想通过单元测试来确认某些代码引发了异常,而无需确切了解异常类。例如,为了确认它引发了 kind_of?(StandardError)
异常,我想这样写:
assert_raise StandardError do
my_method
end
如果异常是 StandardError
的实例,则此断言通过,但如果异常是 StandardError
的子类 的实例,则失败。我最好的解决方案是:
begin
my_method
rescue StandardError => error
return
end
assert false, "no error from my_method"
rescue
确实按照我想要的方式处理异常子类,所以这是可行的。但这有点尴尬。有更好的想法吗?
这是 Ruby 1.8.7 中的 Test::Unit::Assertions 模块。
最佳答案
正如您在 rubyforge bugtracker ticket [#8716] Add option to Test::Unit::Assertions#assert_raise to allow subclasses from 2007(!) 中看到的那样这是一个仍然开放的功能请求。
如果您真的非常需要它,您可以对功能进行 monkeypatch。
关于ruby - 如何让assert_raise处理异常子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20617670/
我目前正在学习 Zed A. Shaw 的“用困难的方式学习 Python”,我在使用 assert_raises 练习 49 时遇到了很多麻烦。这是我在测试文件中使用的代码: def test_pa
我正在研究 Exercise 49 of Learn Ruby the Hard Way 练习要求为提供的每个函数编写单元测试。我正在测试的项目之一是是否引发了适当的异常。建议我们为此使用assert
好的,问题来了:在exercise 49在 Zed Shaw 的“Learn Python the Hard Way”一文中,我们需要使用 assert_raises() 测试几个异常。这是我正在测试
我正在使用 nose 1.1.2 为 Python 项目编写测试。文档中恰好提到了这个 assert_raises 函数,但我在任何地方都找不到它。 它应该是这样的东西的简写: value_error
下面的测试是否应该断言抛出了异常?在我的电脑上它没有,我想知道这是否是预期的行为。 def a raise RuntimeError end def b begi
我有要测试的代码: from random import randint class End(object): def __init__(self): s
我正在尝试为 python 项目编写一些 Nose 测试。自从我上次写一些 nostests 以来已经有一段时间(一年左右)了,看起来 nose2 是现在建议使用的模块。 我想编写一个测试来检查当错误
我有程序 factorial.rb 和 test_factorial.rb。前者看起来像这样: def factorial(n) (1..n).inject(:*) || 1 end test_f
我正在尝试使用 Action Controller bug report template 解决 Rails 中的一个奇怪行为. 为了记录,这是模板中的 Controller : class Test
我无法让 assert_raise 识别 java 异常。 我可以 assert_raise(NativeException) { @iter.next } 效果很好,但如果我尝试更具体一些 java
在 MiniTest 的 assert_raises/must_raise 中检查异常消息的预期语法是什么? 我正在尝试做出如下断言,其中 "Foo" 是预期的错误消息: proc { bar.do_
我是一名优秀的程序员,十分优秀!