嗨,我有一个要使用单元测试对其进行测试的功能:
def interleave(a,b):
m = len(a)
n = len(b)
N = m if m>n else n
result = []
for i in range(N):
result += [a[i], b[i]]
return result
我的测试如下:
from interleave import interleave
import unittest
class TestGettingStartedFunctions(unittest.TestCase):
def test_interleave(self):
cases = [
([], [], []), # corner case
([1, 4, 6], [], [1, 4, 6]),# edge case
([], [2, 3], [2, 3]),# edge case
([1], [9], [1, 9]), # regular case
([8, 8, 3, 9], [1], [8, 1, 8, 3, 9]),
([2], [7, 8, 9], [2, 7, 8, 9]),
]
for a, b, expected in cases:
self.assertEqual(interleave(a, b), expected)
运行测试时,我得到以下信息:
$ python test_interleave.py -v test_interleave (主要 .TestGettingStartedFunction)...错误
================================================ ======================错误:test_interleave(主要 .TestGettingStartedFunction) -------------------------------------------------- --------------------追溯(最近一次通话最后一次):文件“ test_interleave.py”,行 14,在test_interleave中 self.assertEqual(interleave(in1,in2),expected)文件“ /Users/csarami/pythonExamples/interleave/interleave.py”,第7行,在 交错 结果+ = [a [i],b [i]] IndexError:列表索引超出范围
-------------------------------------------------- -----------------------在0.001秒内进行了1次测试
失败(错误= 1)
我希望测试返回通过([1],[9],[1、9])案例,并以冗长的方式报告另一个失败。
任何帮助或解决方法将不胜感激。