- 1.测试函数
python测试函数是否正确,一般使用的是模块unittest,需要创建一个类,这个类的名字随便取,最好是以Test开头,但是这个类必须继承unittest.TestCase类。
实例11.1
我们先创建了city_functions.py文件,他的作用是定义一个函数,显示城市和国家名字,
city_functions.py
def get_city_country(city,country):
#定义函数用来显示城市和国家名字
city_details=city + ',' + country
return city_details.title()
然后我们创建了test_cities.py文件,这个文件是测试文件,用来测试函数输出是否与预期是否一致,注意这里定义的方法名一定要以test_开头。
test_cities.py
import unittest
from city_functions import get_city_country
# 从city_function 中调用函数 get_city_country
class CityTestCase(unittest.TestCase):
#为什么是class xxxxx(unittest.TestCase)这样写,应该是unittest的固定的格式
def test_city_country(self):
city_names=get_city_country('hangzhou','china')
self.assertEqual(city_names,"Hangzhou,China")
#调用了方法assertEqual,来比较city_names与我们预期的输出Hangzhou,China是否一致
unittest.main()
上述代码运行结果
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
当然如果运行错误的话,会显示类似这样的代码,这个时候我们不要去修改测试代码文件test_cities.py,除非测试代码文件有明显的错误,而是应该去检查被测试的函数city_functions.py文件中代码是否正确。
F
======================================================================
FAIL: test_first_last_name (__main__.NamesTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_name_function.py", line 7, in test_first_last_name
self.assertEqual(formatted_name,'ZhenfangShen')
AssertionError: 'Zhenfang Shen' != 'ZhenfangShen'
- Zhenfang Shen
? -
+ ZhenfangShen
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures=1)