问题:
unittest告诉我我的两个列表相等,我不知道为什么。
要测试的代码:
import random
deck = ['ace', 'ace', 'ace', 'ace', 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4,
4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10,
10, 10, 'jack', 'jack', 'jack', 'jack', 'queen', 'queen', 'queen',
'queen', 'king', 'king', 'king', 'king']
def shuffle_cards(dck: list) -> None:
random.shuffle(dck)
测试类:
import unittest
import blackjack
class Tester(unittest.TestCase):
def test_card_shuffler(self):
original_deck = blackjack.deck
shuffled_deck = blackjack.deck
blackjack.shuffle_cards(shuffled_deck)
failed_message = "Oh no! I failed!"
self.assertEqual(shuffled_deck, original_deck, failed_message)
if __name__ == '__main__':
unittest.main()
unittest输出:
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
研究
How to compare two lists in python?
它不能回答我的问题,因为我知道如何直接比较列表。我想知道为什么unittest返回正在返回的内容。
我已经阅读了assertEqual的单元测试文档和数据结构文档。看来测试应该失败,但事实并非如此。 https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertEqual https://docs.python.org/3/tutorial/datastructures.html
任何帮助将不胜感激。
P.S。我试图问最好的问题。我是编程和这个网站的新手。关于如何改善我的问题的任何建议将不胜感激。