测试用例使用断言来确保您构建的内容在未来不会呈现出意外的结果。例如,您可以断言以确保在错误输入时引发异常。
很多时候,在编程中更改一件事意味着您必须更改其他代码。断言确保您所做的更改不会破坏您过去编写的代码。
例外是好的。它们是预期的并通过异常处理。例如,您有登录名和密码错误的例外情况。
您可以断言,如果登录名或密码不正确,则会引发预期的异常。
断言包含三个主要内容。你正在测试什么(例如函数名,ie sign_in
),输入什么(函数参数ie {'email': 'john@example.com', 'password': hashlib.md5('my_password')}
),输出什么(assertTrue('user_name' in response, 'Expecting user_name to be in response!')
)。
异常是代码中正常的、合乎逻辑的选择。断言是用于确保遵循逻辑路径的测试。
根据 python unittest framework,您可以断言抛出异常:
import random import unittest
class TestSequenceFunctions(unittest.TestCase):
def setUp(self):
self.seq = range(10)
def test_shuffle(self):
# make sure the shuffled sequence does not lose any elements
random.shuffle(self.seq)
self.seq.sort()
self.assertEqual(self.seq, range(10))
# should raise an exception for an immutable sequence
self.assertRaises(TypeError, random.shuffle, (1,2,3))
def test_choice(self):
element = random.choice(self.seq)
self.assertTrue(element in self.seq)
def test_sample(self):
with self.assertRaises(ValueError):
random.sample(self.seq, 20)
for element in random.sample(self.seq, 5):
self.assertTrue(element in self.seq)
if __name__ == '__main__':
unittest.main()