单元测试
通过调用函数,输入参数测试。
def add(a,b):
c = a + 2 * b
return c
if __name__ == "__main__"
print(add(2,3))
使用例子:
import unittest
class IntegerArithmeticTestCase(unittest.TestCase):
def testAdd(self): # test method names begin with 'test'
self.assertEqual((1 + 2), 3)
self.assertEqual(0 + 1, 1)
def testMultiply(self):
self.assertEqual((0 * 10), 0)
self.assertEqual((5 * 8), 40)
if __name__ == '__main__':
unittest.main()
脚本执行顺序
1.用例之间不要存在依赖关系,每个用例都能单独运行
2.用例之间不要相互调用,需要电泳的公共方法可以写成方法去调用
def setUp(self):
# 每个用例执行之前,先执行一次
def tearDown(self):
# 每个用例执行之后,调用一次
@classmethod
def setUpClass(cls):
# 用例前,只执行一次
@classmethod
def tearDownClass(cls):
# 用例后,只执行一次
assert断言
| 方法 | 检查 |
|---|---|
| assertEqual(a,b) | a == b |
| assertNotEqual(a,b) | a != b |
| assertTrue(x) | bool(x) is True |
| assertFalse(x) | bool(x) is False |
| assertIs(a,b) | a is b |
| assetIsNot(a,b) | a is not b |
| assertIsNone(x) | x is not None |
| assertIn(a,b) | a in b |
| assertNotIn(a,b) | a not in b |
| assertIsInstance(a, b) | isinstance(a,b) |
| assertNotIsInstance(a, b) | not isinstance(a,b) |
def test_01(self):
a = 2
b = 3
self.assertTrue(a == b)
__name__和__main__
* 模块是对象,并且所有的模块都有一个内置属性 __name__
* 如果模块是被直接执行, _name__的值为 ‘_main__’
print(__name__)
>>> __main__
* 如果模块是被导入, __name__的值模块的名字
import unittest
print(unittest.__name__)
>>> unittest
* if ___name__和 ‘’_main__’’ 我们简单的理解就是: 如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。
# 第二种运行方法
if __name__ == '__main__':
unittest.main()
函数
定义规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号**()**。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法:
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
本文深入探讨了单元测试的基本概念和实践技巧,包括如何使用Python的unittest框架编写测试用例,掌握assert断言方法,以及理解测试函数的定义和执行流程。通过具体示例,读者将学会如何独立运行测试用例,确保代码质量。
245

被折叠的 条评论
为什么被折叠?



