【发布时间】:2011-04-22 02:03:11
【问题描述】:
我正在尝试使用 unittest 在 Python 中进行一个简单的测试,以查看一个类是否会在构造函数的输入不合适时引发异常。该类如下所示:
class SummaryFormula:
def __init__( self, summaryFormula):
self.atoms = {}
for atom in re.finditer( "([A-Z][a-z]{0,2})(\d*)", summaryFormula):
symbol = atom.group(1)
count = atom.group(2)
if pocet != "":
self.atoms[ symbol] = int(count)
else:
self.atoms[ symbol] = 1
我的测试如下:
class ConstructorTestCase(unittest.TestCase):
def testEmptyString(self):
self.assertRaises(TypeError, ukol1.SummaryFormula(), "testtest")
if __name__ == '__main__':
unittest.main()
我想要的只是测试失败,这意味着不处理构造函数输入不合适的异常。
相反,我收到一个错误:__init__() takes exactly 2 arguments (1 given)。
我错过了什么?我应该指定的第二个参数是什么?
另外,我应该使用什么类型的错误来处理我的正则表达式不匹配的输入被传递给构造函数的异常?
谢谢你,托马斯
【问题讨论】:
-
我无法直接运行代码,因为 for 循环附近有语法错误。你能纠正一下吗?
-
我认为 for 循环周围的缩进不正确
-
@pyfunc:很抱歉。已更正。
标签: python unit-testing testing exception-handling