2 编写测试函数

2.1 测试示例程序

请添加图片描述

本地安装 Tasks 项目程序包

请添加图片描述

2.2 使用 assert 声明

pytest 允许在 assert 后加任何表达式
pytest 会截断对原生 assert 的调用,替换为 pytest 定义的 assert
请添加图片描述

2.3 预期异常

2.4 测试函数的标记

一个测试函数可以有多个 marker,一个 marker 也可用来标记多个测试函数

2.5 跳过测试

skip

在该测试函数上方添加 pytest.mark.skip() 装饰器即可
请添加图片描述

skipif

pytest.mark.skipif() 可添加跳过条件
请添加图片描述

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为函数编写测试用例时,应该考虑以下几个方面: 1. 边界条件:测试函数的边界条件,如最小值、最大值、空值、边界值等。这有助于确保函数在极端情况下也能正常工作。 2. 正常情况:测试函数的正常输入情况,以确保函数在符合预期的情况下能够正常工作。 3. 异常情况:测试函数的异常输入情况,如非法输入、无效参数等,以确保函数能够适当地处理这些情况。 4. 性能测试:测试函数在大规模数据集下的性能表现,以确保函数在实际使用场景下能够快速高效地运行。 例如,对于一个名为 `calculate_average` 的函数,它接受一个列表作为输入,并返回列表中所有数字的平均值。以下是为该函数编写测试用例的一个例子: ```python import unittest def calculate_average(numbers): if not numbers: return 0 return sum(numbers) / len(numbers) class TestCalculateAverage(unittest.TestCase): def test_empty_list(self): self.assertEqual(calculate_average([]), 0) def test_single_number(self): self.assertEqual(calculate_average([5]), 5) def test_multiple_numbers(self): self.assertEqual(calculate_average([1, 2, 3, 4, 5]), 3) def test_non_numeric_input(self): with self.assertRaises(TypeError): calculate_average(['a', 'b', 'c']) def test_performance(self): numbers = [i for i in range(1000000)] self.assertAlmostEqual(calculate_average(numbers), 499999.5, delta=0.1) if __name__ == '__main__': unittest.main() ``` 这个例子包含了五个测试用例,每个测试用例都测试不同的输入情况。例如,`test_empty_list` 测试函数对于空列表的输入是否返回 0。`test_non_numeric_input` 测试函数对于非数字输入是否引发 `TypeError` 异常。`test_performance` 测试函数在处理大规模数据集时的性能表现。每个测试用例都使用 `assertEqual` 或 `assertRaises` 方法来检查函数的实际输出是否符合预期输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值