Python - unittests:如果它们实际上是同一个对象,则使用它们的属性来比较一些对象吗?

时间:2016-10-03 10:55:32

标签: python python-2.7 object python-unittest xlwt

我有将数据设置为类属性的方法。

那么就说我跑:

self._set_data(some_data)
print self._data

它打印出这些信息:

{'c2': {
    'column': 1, 
    'style': <xlwt.Style.XFStyle object at 0x7f4668a18dd0>, 
    'value': u'Argentina', 'row': 2}, 
'c1': {
    'column': 0, 
    'style': <xlwt.Style.XFStyle object at 0x7f4668a18dd0>, 
    'value': 'C is not Python', 'row': 0}}

因此除了style之外的每个键都有简单的数据,因此在运行单元测试时检查预期的内容没有问题。但是我用style键看到的问题,它返回实例化的xlwt模块的样式对象。现在,即使我要创造&#34;相同&#34;使用与__init__相同的值的样式,unittest仍然会失败,因为它会比较对象,因此它将是不同的对象。 python标准unittest套件有类似的东西吗?或者我需要扩展unittests套件,所以它会以某种方式比较该特定对象吗?

1 个答案:

答案 0 :(得分:0)

在测试中,您可以创建一个使用期望值初始化的模拟样式对象,然后将其__dict__属性与测试样式对象的__dict__属性进行比较。

if mock_style.__dict__ == tested_style.__dict__ :
    print('The styles are set correctly.')