单元测试
每完成一个单元测试,Python都会打印一个字符:
测试通过打印一个句点;测试引发错误打印E;测试导致断言失败打印F
模块unittest
import unittest from name_function import get_formatted_name#导入要测试的函数 class NamesTestCase(unittest.TestCase):#注意类的参数哦 """方法名字开头test,测试时会自动执行""" def test_first_last_name(self): formatted_name = get_formatted_name('janis', 'joplin') self.assertEqual(formatted_name, 'Janis Joplin') def test_first_last_middle_name(self): formatted_name = get_formatted_name( 'wolfgang', 'mozart', 'amadeus') self.assertEqual(formatted_name, 'Wolfgang Amadeus Mozart')#方法:断言 #将括号内左方同右方比较,相等则无事,不等则警报 unittest.main()#让python运行这个文件测试
方法setUP
import unittest from survey import AnonymousSurvey class TestAnonymousSurvey(unittest.TestCase): """Tests for the class AnonymousSurvey.""" def setUp(self):#TestCase类中包含了方法setUP Python将先运行它再运行以test_为前缀的方法 """用来创建测试实例对象 """ question = "What language did you first learn to speak?" self.my_survey = AnonymousSurvey(question) self.responses = ['English', 'Spanish', 'Mandarin'] def test_store_single_response(self): """Test that a single response is stored properly.""" self.my_survey.store_response(self.responses[0]) self.assertIn(self.responses[0], self.my_survey.responses) def test_store_three_responses(self): """Test that three individual responses are stored properly.""" for response in self.responses: self.my_survey.store_response(response) for response in self.responses: self.assertIn(response, self.my_survey.responses) unittest.main()