gpt4 book ai didi

Python单元测试多个输入

转载 作者:行者123 更新时间:2023-12-05 03:53:55 25 4
gpt4 key购买 nike

这是一个通用问题,专门针对 Python 中的单元测试。将 20 个或一定数量的输入作为键放入字典中进行测试是否可以接受,其中值是函数的预期结果输出?

我在网上搜索后找不到答案。我读到的几乎所有内容都是玩具示例,例如添加数字以获得总和或连接名字和姓氏。以下是另一个玩具示例,以简单的方式描述我的问题。

import unittest
import some_module

class SomeModuleUnitTest(unittest.TestCase):

def test_some_function(self):

input_output_dict = {
1: 1,
2: 4,
3: 9,
4: 16,
5: 25,
6: 36,
7: 49,
.
.
.

20: 400
}

for input_case, output_expected in input_output_dict.items():
output_actual = some_module.some_function(input_case)
self.assertEqual(output_expected, output_actual)

如果这被认为是过时的,那么用于测试多个输入的 Pythonic 解决方案是什么?

最佳答案

好的,我会去的。试图回答我在这里看到的明确和隐含的问题。

它是 pythonic 的吗?如果那是您拥有的数据,那么将其放入字典当然可以。如果它变得非常大,您可以考虑从文件中读取它,但在这种情况下可能不需要这样做。

这是测试多个输入的最佳方式吗?
不,有可能 use test parametrization在提供比您的示例组织得更好的输出的测试框架中。最常用的可能是 pytest.mark.parametrize pytest 中的装饰器。

您的测试需要那么多不同的输入吗?
这取决于你的功能。如果每个输入都代表不同的场景,那肯定是的。如果它们代表相同的场景,您可能会想到典型情况和边缘情况,但通常您不需要很多不同的输入。

关于Python单元测试多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61419269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com