我使用nose 1.1.2來爲Python項目編寫測試。有這個assert_raises
函數碰巧在文檔中提到,但我無法在任何地方找到它。鼻子的assert_raises函數在哪裏?
它應該是這樣的一個簡寫:
value_error_raised = False
try:
do_something_that_should_raise_value_error()
except ValueError:
value_error_raised = True
assert value_error_raised
type_error_raised = False
try:
do_something_else_that_should_raise_type_error()
except TypeError:
type_error_raised = True
assert type_error_raised
,將成爲:
assert_raises(ValueError,
do_something_that_should_raise_value_error)
assert_raises(TypeError,
do_something_else_that_should_raise_type_error)
我已經搜索源代碼,我發現,只有提起是在tools.py模塊,在raises
文檔中:
如果要測試許多有關異常的斷言在單個測試中,您可能需要使用
assert_raises
。
此功能是否從鼻子上移除?如果是這樣,有人可以幫我理解爲什麼嗎?
好的,那可行!謝謝!我剛剛意識到它沒有明確定義在nose.tools上的原因是因爲它是通過unittest.TestCase assertRaise實現的解決方法。因此,eclipse會在'from nose.tools import assert_raises'上報告一個導入錯誤。 – tbellardi
這不僅僅是PyDev出錯的地方,在使用Jython的大型項目中我記得不得不爲100多個標識符添加例外...... –