一、测试函数
1.相关基础概念
(1)单元测试:用于核实函数的每个方面没有问题
(2)测试用例:是一组单元测试,它们一道核实函数在各种情形下的行为都符合要求
2.测试函数的基本步骤:
(1)导入unittest模块以及要测试的函数
(2)创建一个继承unittest.TestCase的子类,对该子类命名时最好让他看起来与要测试的函数相关并包含Test字样
(3)编写一系列方法对函数行为的不同方面进行测试,注意要想Python自动运行这些测试代码,在对其命名时,需要以test的字样打头,并且Python在运行过程中将自动调用被测试函数
(4)调用unittest.main()
import unittest
from name_function import get_formatted_name
class NameTestCase(unittest.TestCase)
"""测试name_function.py"""
def test_first_last_name(self):
"""测试函数能够正确处理只包含姓和名的名称吗?"""
formatted_name = get_formatted_name('janis', 'joplin')
self.assertEqual(formatted_name, 'Janis Joplin')
if __name__ == '__main__':
unittest.main()
3.测试未通过时,如果检查的条件没错,则应多检查函数代码并对其进行修改
二、测试类
1.各种断言方法:
(1)assertEqual(a,b):核实a == b (2) assertNotEqual(a,b): 核实a != b
(3) assertTrue(x):核实x为True (4)assertFalse(x):核实x为False
(5)assertIn(item, list):核实item在list中 (6)assertNotIn(item, list):核实item不在list中
2.方法setUp():使用方法setUp()所创建的一系列实例并设置的属性,可以在其他测试方法中直接使用这些实例
注意:一定要注意setUp()的写法否则将会导致函数调用的失败
import unittest
from survey import AnonymousSurvy
class TestAnonymousSurvyTest(unittest.TestCase):
"""针对AnonymousSurvy类的测试"""
def setUp(self):
"""创建一组实例和一组答案,供所有测试对象使用"""
question = "What language did you first learn to speak?"
self.my_survy = AnonymousSurvy(question)
self.answers = ['English', 'Spanish', 'Mandarin']
def test_store_single_responce(self):
"""测试单个答案能否被妥善地保存"""
self.my_survy.store_response(self.answers[0])
self.assertIn('English', self.my_survy.responces)
def test_store_three_responce(self):
"""测试三个答案能否被妥善地保存"""
for answer in self.answers:
self.my_survy.store_response(answer)
for answer in self.answers:
self.assertIn(answer, self.my_survy.reponses)
if __name__ = '__mian__':
unittest.main()



