python - Nosetests assert_equal 显然不等于 python ==

标签 python unit-testing dictionary nose

我正在为具有不同来源的设置进行温度控制编程(在本例中只有一个):

source = Source()

sources_dict = {
    key: source
}

temp_control = TempControl(args) #A dictionary is built on instantiation based on args
                                 #and assigned to temp_control.sources

sources_dict 的定义与 TempControl(args) 的参数相同。查看 for 循环的内容,了解哪些有效,哪些无效。

for key, value in tempControl.sources.iteritems():
    assert_equal(value, sources_dict[key]) #Fails
    tempControl.sources[key] == sources_dict[key] #Works
    value == sources_dict[key] #Works

如果没有,我会收到以下错误消息:

AssertionError: <pvd_temp_control.Source object at 0x02AA63B0> !=   <pvd_temp_cont
rol.Source object at 0x02AA6330>
-------------------- >> begin captured stdout << ---------------------
sources_dict: {'Cu': <pvd_temp_control.Source object at 0x02AA6330>}
tempControl.sources: {'Cu': <pvd_temp_control.Source object at 0x02AA63B0>}
source: <pvd_temp_control.Source object at 0x02AA6330>
--------------------- >> end captured stdout << ----------------------

有什么想法吗?

最佳答案

我必须说得更具体。 assert_equal 不会变魔术并遍历字典。这是正确的,例如:

for key, value in tempControl.sources.iteritems():
    assert_equal(value.element_name, sources_dict[key].key_name)

关于python - Nosetests assert_equal 显然不等于 python ==,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646607/

相关文章:

python - 如何使用曲线拟合的标准偏差误差来绘制误差条

python - Elasticsearch-使用Python使用不同的分析器重新索引单个字段

ruby-on-rails - 如何测试依赖: :destroy with RSpec?

unit-testing - Busted has_error 导致测试出错

arrays - 尝试将值附加到字典中的数组

python - 值错误 : dictionary update sequence element #0 has length 1; 2 is required Python Dictionary

python - 错误 : Increase MaxLocksPerFile registry entry via Python

python - 如何以 block 的形式旋转现有数据框?

c# - 如何将参数传递给 TeamCity Test Runner?

ios - Swift:如何将字典数组添加到数组?