python的unittest能不能期待一个错误出现而通过测试,不报错?

请问python的unittest能不能期待一个错误出现而通过测试,不报错?
比如下边的代码运行时会抛出一个ERROR,有没有可能换一个测试函数实现顺利通过测试(出来一个点)?改成assertRaises也是要报错。
谢谢。

import unittest
class TestStringMethods(unittest.TestCase):
        
    def test_score(self):
        self.failUnlessRaises(ZeroDivisionError, 1/0)

if __name__ == '__main__':
    unittest.main()

阅读 2.9k
2 个回答
import unittest
class TestStringMethods(unittest.TestCase):
        
    def test_score(self):
        with self.assertRaises(ZeroDivisionError):
            1/0

if __name__ == '__main__':
    unittest.main()
  • “断言”只管判断,而不在乎判断的东西到底什么。
  • 异常不是“断言”这个层面考虑的问题。
  • 你的问题自己 try 起来就完了。
def fail_unless_raises(error_type, func):
    try:
        func()
    except error_type:
        return
    else:
        raise Exception('xxx')


fail_unless_raises(ZeroDivisionError, lambda: 1/1)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题