断言
测试函数
defget_formatted_name(first,last):"""generate a neatly formattef full name"""full_name= first + ' '+lastreturn full_name.title()
测试类
importunittestclassNamesTestCase(unittest.TestCase):deftest_first_last_name(self):
formatted_name= get_formatted_name('janis','joplin')
self.assertEqual(formatted_name,'Janis Joplin')
unittest.main()
运行结果
Ran 1 test in 0.000s
OK
第2个例子 改进后的 2个测试函数
def get_formatted_name(first,last,middle=''):"""generate a neatly formattef full name"""
ifmiddle:
full_name= first +' '+ middle+' '+lastelse:
full_name= first +' '+lastreturnfull_name.title()importunittestclassNamesTestCase(unittest.TestCase):deftest_first_last_name(self):
formatted_name= get_formatted_name('janis','joplin')
self.assertEqual(formatted_name,'Janis Joplin')deftest_first_last_middle_name(self):
formatted_name= get_formatted_name('wolfgang', 'mozart', 'amadeus')
self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart')
unittest.main()
Ran 2 tests in 0.001s
OK
2 下面来看测试类
1)各种断言方法
assertEqual(a,b) a和b相等
assertNotEqual(a,b) a和b不相当
assertTrue(x) X为真
assertFalse(x) X为假
assertIn(item,list) item在list中
assertNotIn(item,list) item不在list中
3)类的测试
classAnonmousSurvery():def __init__(self,question):
self.question=question
self.responses=[]defshow_question(self):print(self.question)defstore_question(self, new_response):
self.responses.append(new_response)defshow_results(self):print("Survey result:")for response inself.responses:print('-'+response)
question= "what lanaguage did you first learn to speak?"my_survey=AnonmousSurvery(question)
my_survey.show_question()print("Enter q at any time to quit")whileTrue:
response= input("Lanaguage:")if response == 'q':breakmy_survey.store_question(response)print("\n thank you to everyone who participated in the survey")
my_survey.show_results()
importunittestfrom survery importAnonmousSurveryclassTestAnnoymousSurvey(unittest.TestCase):deftest_store_single_response(self):
question= "What language did you first learn to speak?"my_survey=AnonmousSurvery(question)
my_survey.store_question('English')
self.assertIn('English', my_survey.responses)
unittest.main()
类的测试,创建类的实例,并测试类中的方法
3)setUp方法的使用
importunittestfrom survery importAnonmousSurveryclassTestAnnoymousSurvey(unittest.TestCase):defsetUp(self):
question= "What language did you first learn to speak?"self.my_survey=AnonmousSurvery(question)
self.responses= ['English', 'Spanish', 'Mandarin']deftest_store_single_response(self):
question= "What language did you first learn to speak?"my_survey=AnonmousSurvery(question)
my_survey.store_question('English')
self.assertIn('English', my_survey.responses)deftest_store_thress_responses(self):for response inself.responses:
self.my_survey.store_question(response)for response inself.responses:
self.assertIn(response, self.my_survey.responses)
unittest.main()