假设我有这个函数:
def to_upper(var):
assert type(var) is str, 'The input for to_upper should be a string'
return var.upper()和一个使用unittest进行单元测试的文件
class Test(unittest.TestCase):
def test_1(self):
-- Code here --
if __name__ == '__main__':
unittest.main()如果我调用to_upper(9),我该如何测试它抛出了一个断言错误?
发布于 2019-04-09 01:36:43
您可以使用assertRaises(AssertionError)断言断言
def test_1(self):
with self.assertRaises(AssertionError):
to_upper(9)发布于 2019-04-09 01:43:10
断言用于调试。如果有一些前提条件足够重要,可以通过单元测试进行验证,则显式地检查它,如果失败,则引发适当的ValueError或TypeError。
在本例中,您实际上并不关心var是一个str;您只需要它有一个upper方法即可。
def to_upper(var):
try:
return var.upper()
except AttributeError:
raise TypeError("Argument has no method 'upper'")https://stackoverflow.com/questions/55578865
复制相似问题