我有单元测试:assertEqual - 两个相同的列表,为什么我得到奇怪的结果?
import unittest
class TestFail(unittest.TestCase):
def testFail(self):
data = range(5)
self.assertEqual(data, insertion_sorting(data))
class TestSuccess(unittest.TestCase):
def testSuccess(self):
data = range(5)
self.assertEqual([0,1,2,3,4], insertion_sorting(data))
def insertion_sorting(data):
result = []
while len(data):
min_index = 0
for i in range(len(data)):
if data[i] < data[min_index]: min_index = i
result.append(data[min_index])
del data[min_index]
return result
if __name__ == '__main__':
unittest.main()
TestSuccess跑成功,但TestFail提出:
AssertionError: Lists differ: [] != [0, 1, 2, 3, 4]
Second list contains 5 additional elements. First extra element 0: 0
- []
- [0, 1, 2, 3, 4]
你能解释我为什么TestSuccess跑成功,但TestFail不是?
's/data /由两个不同的变量引用的列表,这两个变量都被称为data/g' – delnan 2013-02-19 15:19:44
@delnan,yup,这可能会令人困惑。我试图更具体。 – 2013-02-19 15:21:38
您仍在混合变量(或“名称”)和列表(这是来自几个地方的引用,包括两个不同的变量/名称)。鉴于别名是整个问题,我想说这是一个相当重要的区别。 – delnan 2013-02-19 15:21:43