我正在为输出字典的函数编写一个doctest。医生看起来像
>>> my_function()
{'this': 'is', 'a': 'dictionary'}
当我运行它时,它失败了
Expected:
{'this': 'is', 'a': 'dictionary'}
Got:
{'a': 'dictionary', 'this': 'is'}
对于这个失败的原因,我最好的猜测是doctest没有检查字典的相等性,而是检查__repr__
相等性。This post表示有某种方法可以诱使doctest检查字典的相等性。我该怎么做?
Doctest不检查
__repr__
相等性,它只检查输出是否完全相同。你必须确保同一本字典所印的东西是一样的。你可以用这一行:尽管您的解决方案中的这种变化可能更清晰:
我最后用了这个。很老套,但很管用。
另一个好方法是使用
pprint
(在标准库中)。根据它的源代码,它正在为您排序命令:
http://hg.python.org/cpython/file/2.7/Lib/pprint.py#l158
相关问题 更多 >
编程相关推荐