testing-code-测试代码unittest如何编写?

发布时间 2023-09-14 10:11:29作者: beautiful-life

1---name_function.py函数

name_function.py用来获取人名,入参时选择姓、名、中间字三项(middle为可选入参项)

1 #!usr/bin/env/python
2 
3 def get_formatted_name(first,last,middle=""):
4     if middle:
5         full_name = f"{first} {middle} {last}"
6         return full_name.title()
7     else:
8         full_name = f"{first} {last}"
9         return full_name.title()

2---names.py函数

#!usr/bin/env/python

from name_function import get_formatted_name

print("Enter 'q' at any time to quit !")

while True:
    first = input(f"\nPlease give me a first name:")
    if first == "q":
        break
    last = input(f"Please give me a last name:")
    if last == "q":
        break

    formatted_name = get_formatted_name(first,last)
    print(f"Neatly formatted name:{formatted_name} !")

3---test_name_function.py函数

#!/usr/bin/env/python:这是脚本的shebang,用于指定运行脚本的解释器。

import unittest:导入unittest模块,用于编写和执行测试用例。

from name_function import get_formatted_name:从name_function模块中导入get_formatted_name函数,以便在测试中使用。

class NamesTestCase(unittest.TestCase)::定义一个名为NamesTestCase的测试类,它继承自unittest.TestCase。

def test_first_last_name(self)::定义一个名为test_first_last_name的测试方法,用于测试get_formatted_name函数是否能够正确处理只有姓和名的情况。

self.assertEqual(formatted_name, "Janis Joplin"):使用self.assertEqual()断言方法,检查formatted_name的值是否等于"Janis Joplin"def test_first_middle_last(self)::定义一个名为test_first_middle_last的测试方法,用于测试get_formatted_name函数是否能够正确处理有姓、中间名和名的情况。

unittest.main():执行测试脚本,并运行所有的测试方法。
#!usr/bin/env/python

import unittest
from name_function import get_formatted_name

class NamesTestCase(unittest.TestCase):
    """测试name_function.py"""

    def test_first_last_name(self):
        """能够正确处理类似于以下的例子吗?"""
        formatted_name = get_formatted_name("janis","joplin")
        self.assertEqual(formatted_name,"Janis Joplin")

    def test_first_middle_last(self):
        formatted_name = get_formatted_name("janis","joplin","key")
        self.assertEqual(formatted_name,"Janis Key Joplin")

if __name__ == "__main__":
    unittest.main()

  4、常见的断言方法方法 用途

方法                            用途
assertEqual(a,b) 核实a == b
assertNotEqual(a,b) 核实a != b
assertTure(x) 核实x为True
assertFalse(x) 核实x为False
assertIn(Item,list) 核实item在list中
assertNotIn(Item,list) 核实item不在list中

 

get_formatted_name