我是Python的新手,我已经阅读了python的单元测试文档,我正在做一些与提供的示例不同的东西。我正在比较集。我不知道为什么我的代码会一直失败。好像代码写得正确。有人可以采取一个雄鹅,看看他们是否可以解决问题?我将永远是伟大的!
我正在努力改进单元测试,这就是为什么我正在使用这个代码。
import unittest
def determineIntersections(listingData, carList):
listingDataKeys = []
for key in listingData:
listingDataKeys.append(key)
carListKeys = []
for car in carList:
carListKeys.append(car[0])
intersection = set(carListKeys).intersection(set(listingDataKeys))
difference = set(carListKeys).symmetric_difference(set(listingDataKeys))
resultList = {'intersection' : intersection,
'difference' : difference}
return resultList
class TestHarness(unittest.TestCase):
def test_determineIntersections(self):
listingData = {"a": "", "b": "", "c": "", "d": ""}
carList = {"a": "", "e": "", "f": ""}
results = determineIntersections(listingData, carList)
print results['intersection']
print results['difference']
self.assertEqual(len(results['intersection']), 1)
self.assertSetEqual(results['intersection'], set(["a"]) # offending code piece
self.assertEqual(results['difference'], set(["b", "c", "d", "e", "f"])) # offending code piece
if __name__ == '__main__':
unittest.main()
当我禁用作为集合比较的断言的“违规代码段”时,代码行为正常但是当我启用代码时,我得到以下输出:
python UnitTester.py
File "UnitTester.py", line 39
if __name__ == '__main__':
^
SyntaxError: invalid syntax
任何想法都非常感谢!谢谢。
答案 0 :(得分:2)
您只是在
末尾错过了一个括号self.assertSetEqual(results['intersection'], set(["a"])
这使翻译感到困惑。将其更改为
self.assertSetEqual(results['intersection'], set(["a"]))
通常,您可能会尝试查找与括号匹配的编辑器(或编辑器设置),或者警告无法匹配的括号。