断言
测试函数
def get_formatted_name(first,last): """generate a neatly formattef full name""" full_name = first + ' '+last return full_name.title()
测试类
import unittest class NamesTestCase(unittest.TestCase): def test_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""" if middle: full_name = first +' '+ middle+' '+last else: full_name = first +' '+last return full_name.title() import unittest class NamesTestCase(unittest.TestCase): 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()
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)类的测试
class AnonmousSurvery(): def __init__(self,question): self.question = question self.responses = [] def show_question(self): print(self.question) def store_question(self, new_response): self.responses.append(new_response) def show_results(self): print("Survey result:") for response in self.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") while True: response = input("Lanaguage:") if response == 'q': break my_survey.store_question(response) print(" thank you to everyone who participated in the survey") my_survey.show_results()
import unittest from survery import AnonmousSurvery class TestAnnoymousSurvey(unittest.TestCase): def test_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方法的使用
import unittest from survery import AnonmousSurvery class TestAnnoymousSurvey(unittest.TestCase): def setUp(self): question = "What language did you first learn to speak?" self.my_survey = AnonmousSurvery(question) self.responses = ['English', 'Spanish', 'Mandarin'] def test_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) def test_store_thress_responses(self): for response in self.responses: self.my_survey.store_question(response) for response in self.responses: self.assertIn(response, self.my_survey.responses) unittest.main()