我有單元測試: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