python学习笔记-基础语法1、可通过的测试,下面我们就来聊聊关于简单易懂的中文语法书?接下来我们就一起去了解一下吧!

简单易懂的中文语法书(2022年5月29日学习笔记-基础语法)

简单易懂的中文语法书

python学习笔记-基础语法

第十一章 代码测试一、测试函数

1、可通过的测试

方法

描述

单元测试

用于核实函数的某个方面没有问题

全覆盖式测试

用例包含一整套单元测试,涵盖了何种可能的函数使用方式

self.assertEqual(A,B)

一种断言方法,将A的值与B相比较并反馈

def get_formatted_name(first,last): full_name = first ' ' last return full_name.title()

import unittest from name_function import get_formatted_name class NamesTestCase(unittest.TestCase): def test_first_last_name(self): formatted_name = get_formatted_name('janis', 'joplin') self.assertEqual(formatted_name, 'Janis Joplin') if __name__ == '__main__': unittest.main() 输出结果为: Ran 1 test in 0.003s OK

2、不能通过测试

def get_formatted_name(first,middle,last): full_name = first " " middle ' ' last return full_name.title()

import unittest from name_function import get_formatted_name class NamesTestCase(unittest.TestCase): def test_first_last_name(self): formatted_name = get_formatted_name('janis', 'joplin') self.assertEqual(formatted_name, 'Janis Joplin') if __name__ == '__main__': unittest.main() 输出结果为: Ran 1 test in 0.005s FAILED (errors=1) Error Traceback (most recent call last): File "D:\Python_Work\Python学习\Python编程-从入门到实践\测试name_function中的函数.py", line 5, in test_first_last_name formatted_name = get_formatted_name('janis', 'joplin') TypeError: get_formatted_name() missing 1 required positional argument: 'last'

3、测试未通过时的做法

def get_formatted_name(first,last,middle=''): if middle: full_name = first " " middle ' ' last else: full_name = first ' ' last return full_name.title()

import unittest from name_function import get_formatted_name class NamesTestCase(unittest.TestCase): def test_first_last_name(self): formatted_name = get_formatted_name('janis', 'joplin') self.assertEqual(formatted_name, 'Janis Joplin') if __name__ == '__main__': unittest.main() 输出结果为: Ran 1 test in 0.002s Launching unittests with arguments python -m unittest D:/Python_Work/Python学习/Python编程-从入门到实践/测试name_function中的函数.py in D:\Python_Work\Python学习\Python编程-从入门到实践 OK

4、添加新测试

def get_formatted_name(first,last,middle=''): if middle: full_name = first " " middle ' ' last else: full_name = first ' ' last return full_name.title()

import unittest from name_function import get_formatted_name 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_middle_last_name(self): formatted_name = get_formatted_name('wolfgang','mozart','amadeus') self.assertEqual(formatted_name,'Wolfgang Amadeus Mozart') if __name__ == '__main__': unittest.main() 输出结果为: Ran 2 tests in 0.003s OK

二、测试类

1、各种断言方法

方法

描述

assertEqual(a,b)

核实 a ==b

assertNotEqual(a,b)

核实 a != b

assertTrue(x)

核实 x 为 True

assertFalse(x)

核实 x 为 False

assertIn(item,list)

核实 item 在 list中

assertNotIn(item,list)

核实 item 不在 list 中

2、一个要测试的类

class AnonySurvey(): def __init__(self,question): self.question = question self.responses = [] def show_question(self): print(self.question) def store_response(self,new_response): self.responses.append(new_response) def show_results(self): print("Survey results:") for response in self.responses: print("- " response)

测试类: import unittest from language_survery import AnonySurvey class TestAnonySurvey(unittest.TestCase): def test_store_single_response(self): question = input("What language did you first learn to speak?") my_survey = AnonySurvey(question) my_survey.store_response("English") self.assertIn('English',my_survey.responses) def test_store_three_responses(self): question = input("What language did you first learn to speak?") my_survey = AnonySurvey(question) responses = ['English','Spanish','Mandarin'] for response in responses: my_survey.store_response(response) for response in responses: self.assertIn(response,my_survey.responses) unittest.main() 输出结果为: Ran 2 tests in 0.000s OK

3、方法setUp()

class AnonySurvey(): def __init__(self,question): self.question = question self.responses = [] def show_question(self): print(self.question) def store_response(self,new_response): self.responses.append(new_response) def show_results(self): print("Survey results:") for response in self.responses: print("- " response)

import unittest from language_survery import AnonySurvey class TestAnonySurvey(unittest.TestCase): def setUp(self): question = "What language did you first learn to speak?" self.my_survey = AnonySurvey(question) self.responses = ['English','Spanish','Mandarin'] def test_store_single_response(self): self.my_survey.store_response(self.responses[0]) self.assertIn(self.responses[0],self.my_survey.responses) def test_store_three_responses(self): for response in self.responses: self.my_survey.store_response(response) for response in self.responses: self.assertIn(response,self.my_survey.responses) if __name__ == '__main__': unittest.main() 输出结果为: Ran 2 tests in 0.002s OK

,