gpt4 book ai didi

python - 如何避免单元测试中的代码重复

转载 作者:行者123 更新时间:2023-11-28 21:36:09 26 4
gpt4 key购买 nike

假设我有一个名为“factorial”的函数,我想测试这个函数。我经常发现自己重写了如下所示的单元测试,我在其中定义了一些测试用例,可能包括一些边缘用例,为所有这些测试运行测试。这种常见的模式,定义测试值和预期输出并在它们上运行测试给我留下了以下样板代码。本质上,我希望有一个一个函数,我将测试值列表和预期值列表以及用于测试它的函数传递给该函数,然后让框架为我处理其余部分。是否存在类似的东西?什么会反对这种简化的方法?

import unittest
class TestRecursionAlgorithms(unittest.TestCase):
def test_factorial(self):
input_values = [1, 2, 3, 4, 5]
solutions = [1, 2, 6, 24, 120]

for idx, (input_value, expected_solution) in enumerate(zip(input_values, solutions)):
with self.subTest(test_case=idx):
self.assertEqual(expected_solution, factorial(input_value))

干杯

最佳答案

您可以使用它的变体。

input_values = [1, 2, 3, 4, 5]
solutions = [1, 2, 6, 24, 120]
result = dict(zip(input_values, solutions)) # Key:Value
print(result)
match = {i: k for i, k in result.items() if i == k} # Key Value comparison
print(match)

结果:

{1: 1, 2: 2, 3: 6, 4: 24, 5: 120}
{1: 1, 2: 2}

关于python - 如何避免单元测试中的代码重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58575164/

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