gpt4 book ai didi

python unittest assertRaises在assertRaises失败时抛出异常

转载 作者:太空狗 更新时间:2023-10-29 22:14:30 24 4
gpt4 key购买 nike

我有一段代码,当 assertRaises 失败时,assertRaises 抛出一个异常。我认为如果 assertRaises 失败,那么测试就会失败,最后我会得到一份报告,说测试失败。我没想到会抛出异常。下面是我的代码。我做错什么了吗?我正在使用 Python 2.6.2。

import unittest

class myClass:

def getName(self):

raise myExcOne, "my exception one"
#raise myExcTwo, "my exception two"
#return "a"

class myExcOne(Exception):
"exception one"

class myExcTwo(Exception):
"exception two"


class test_myClass(unittest.TestCase):

def setUp(self):

self.myClass = myClass()

def testgetNameEmpty(self):
#self.assertRaises(myExcOne,self.myClass.getName)
#self.assertRaises(myExcTwo,self.myClass.getName)

try:
self.assertRaises(myExcTwo,self.myClass.getName)
except Exception as e:
pass

if __name__ == "__main__":

#unittest.main()

suite = unittest.TestLoader().loadTestsFromTestCase(test_myClass)
unittest.TextTestRunner(verbosity=2).run(suite)

最佳答案

发布的代码是错误的。首先,class myClass(): 应该是 class myClass:。另外 if name == "main": 应该是:

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

除了这些问题之外,这会失败,因为 getName() 正在引发异常 myExcOne 而您的测试需要异常 myExcTwo

这是一些有效的代码。请编辑您问题中的代码,以便我们可以轻松地将其剪切并粘贴到 Python session 中:

import unittest

class myExcOne(Exception): "exception one"

class myExcTwo(Exception): "exception two"

class myClass:
def getName(self):
raise myExcTwo

class test_myClass(unittest.TestCase):
def setUp(self):
self.myClass = myClass()
def testgetNameEmpty(self):
#self.assertRaises(myExcOne,self.myClass.getName)
self.assertRaises(myExcTwo,self.myClass.getName)

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

关于python unittest assertRaises在assertRaises失败时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1230498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com