我正在尝试使用'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 two arguments (1 given)
。
我错过了什么?我应该指定什么作为第二个参数?
还有,我应该使用什么类型的错误来处理传递给构造函数的与我的正则表达式不匹配的输入的异常?