[英]How to use unittest to assert an assert?
假设我有这个功能:
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)
它会抛出一个断言错误,我如何测试?
您可以使用assertRaises(AssertionError)
:
def test_1(self):
with self.assertRaises(AssertionError):
to_upper(9)
断言用于调试。 如果有一些重要的前置条件足以通过单元测试进行验证,请明确检查它并在适当的情况下引发ValueError
或TypeError
(如果失败)。
在这种情况下,你实际上并不关心var
是str
; 你只需要它有一个upper
方法。
def to_upper(var):
try:
return var.upper()
except AttributeError:
raise TypeError("Argument has no method 'upper'")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.