python-测试函数

测试函数

用于检测编写的函数是否实现了相应的功能

Python提供了一种自动测试函数输出的 高效方式。

Python标准库中的模块unittest 提供了代码测试工具。

单元测试 用于核实函数的 某个方面没有问题。测试用例 是一组单元测试,它们一道核实函数在各种情形下的 行为都符合要求。

良好的测试用例考虑到了函数可能收到的各种输入,包含针对所 有这些情形的测试。全覆盖 的测试用例包含一整套单元测试,涵盖了各种可能的函 数使用方式。

对于大型项目,要进行全覆盖测试可能很难。通常,最初只要针对代 码的重要行为编写测试即可,等项目被广泛使用时再考虑全覆盖。

测试步骤:

1.导入模块unittest 以及 需要进行测试的函数function() -以get_formatted_name为例

import unittest
from test1 import get_formatted_name

2.编写测试类

 class NamesTestCase(unittest.TestCase):
 """测试name_function.py。"""
 	def test_first_last_name(self):
        #方法必须以"test_"开头
	 """能够正确地处理像Yu Lin这样的姓名吗?"""
		formatted_name = get_formatted_name('Yu', 'Lin')
		self.assertEqual(formatted_name, 'Yu Lin')
    def test_XXXXX(self):
        #方法必须以"test_"开头
	 """能够正确地处理XXXXXXXX吗?"""
		XXXXXXXX
if __name__ == '__main__':
	unittest.main()
#if 代码块检查特殊变量__name__ ,这个变量是在程序执行时设置的。如果这个文件作为主程序执行,变量__name__ 将被设置为'__main__' 。在这里,调用unittest.main() 来运行测试用例。如果这个文件被测试框架导入,变量__name__ 的值将不是'__main__' ,因此不会调用unittest.main() 。

要点:

  • 这个类的作用是用于包含一系列针对 get_formatted_name() 的单元测试。这个类可以随意命名,但最好让它看起来 与要测试的函数相关并包含Test 字样。如NamesTestCase()的类名

  • 这个类必须继承unittest.TestCase 类,这样Python才知道如何运行你编写的测试。

  • NamesTestCase 只包含一个方法,用于测试get_formatted_name() 的一个方面。方法的名字命令可以更加详细如:test_first_last_name()

  • self.assertEqual是unittest 类最有用的功能之一:断言 方法。断言方法核实得到的 结果是否与期望的结果一致

  • 通过不断编写调试方法来完成其他测试

输出结果如下

.
-------------------------------------------
Ran 1 test in 0.000s
OK

断言方法

Python在unittest.TestCase 类中提供了很多断言方法

方法用途
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 中
  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值