驱动函数(Driver Function)是一种用于测试需要用户输入的函数的辅助函数。它模拟用户输入,提供必要的参数,并调用被测试的函数,以便进行自动化测试。
假设我们有一个需要用户输入的函数 calculateSum
,它接受两个数字并返回它们的和。我们可以编写一个驱动函数来测试这个函数。
def calculateSum(a, b):
return a + b
def test_calculateSum():
# 简单驱动函数
assert calculateSum(3, 5) == 8
# 参数化驱动函数
test_cases = [
(1, 2, 3),
(10, -5, 5),
(0, 0, 0)
]
for a, b, expected in test_cases:
assert calculateSum(a, b) == expected
# 运行测试
test_calculateSum()
解决方法:使用参数化驱动函数,通过生成不同的测试用例来模拟复杂的用户输入。
def test_calculateSum_complex():
test_cases = [
(1.5, 2.5, 4.0),
(-3, -7, -10),
(100, 200, 300)
]
for a, b, expected in test_cases:
assert calculateSum(a, b) == expected
解决方法:使用测试框架提供的模拟工具或库,如 unittest.mock
在 Python 中。
import unittest
from unittest.mock import patch
class TestCalculateSum(unittest.TestCase):
@patch('builtins.input', side_effect=[3, 5])
def test_calculateSum_with_input(self, mock_input):
assert calculateSum(int(input()), int(input())) == 8
if __name__ == '__main__':
unittest.main()
通过这些方法和示例代码,你可以有效地制作驱动函数来测试需要用户输入的函数。
领取专属 10元无门槛券
手把手带您无忧上云