1.创建一个模块叫make_name,模块包含make_name函数
def make_name(first_name, last_name):
"""生成一个完成的名字"""
full_name = f"{first_name} {last_name}"
return full_name
2.创建一个names模块用于单元测试
from make_name import make_name
import unittest
class Names_test_case(unittest.TestCase): # 创建一个测试用例子类,继承父类unittest的TestCase方法
"""测试make_name.py"""
def test_first_case(self):
"""判断能否返回 周 杰"""
"""成功案例"""
formatted_name = make_name("周", "杰")
self.assertEqual(formatted_name, "周 杰") # 断言
def test_error_case(self):
"""失败案例"""
formatted_name = make_name("周", "1")
self.assertEqual(formatted_name, "周 杰")
if __name__ == '__main__':
unittest.main()
11.2 针对一个类测试
11.2.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中 |
class AnonymousSurvey:
"""收集匿名调查问卷的答案。"""
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(f"- {response}")
from survey import *
import unittest
class Survey_test_case(unittest.TestCase):
"""针对AnonymousSurvey类的测试。"""
def test_store_single_response(self):
"""测试单个答案会被妥善地存储。"""
question = "你们喜欢吃什么水果?"
my_survey = AnonymousSurvey(question)
my_survey.store_response("杨梅")
self.assertIn("杨梅", my_survey.responses)
if __name__ == '__main__':
unittest.main()
11.2.3 setup
- 可以通过setup去配置一些公共的配置
from survey import *
import unittest
class Survey_test_case(unittest.TestCase):
def setUp(self):
question = "你们喜欢吃什么水果?"
self.my_survey = AnonymousSurvey(question)
self.responses = ["苹果", "西瓜", "杨梅"]
"""针对AnonymousSurvey类的测试。"""
def test_store_single_response(self):
"""测试单个答案会被妥善地存储。"""
self.my_survey.store_response(self.responses[0])
self.assertIn(self.responses[0], self.my_survey.responses)
if __name__ == '__main__':
unittest.main()



