Python assert_has_调用失败,对象参数的属性顺序不同
我有这样的主张-Python assert_has_调用失败,对象参数的属性顺序不同,python,python-3.x,python-3.6,pytest,python-unittest,Python,Python 3.x,Python 3.6,Pytest,Python Unittest,我有这样的主张- obj_instance_1 = SomeType(a=1,b=2,c=3) //invoke the test function mock_calls = [ mock.call(param1=obj_instance_1, param2=mocked_obj), mock.call(param1=obj_instance_1, param2=mocked_obj), ] mock_instance.assert
obj_instance_1 = SomeType(a=1,b=2,c=3)
//invoke the test function
mock_calls = [
mock.call(param1=obj_instance_1, param2=mocked_obj),
mock.call(param1=obj_instance_1, param2=mocked_obj),
]
mock_instance.assert_has_calls(mock_calls)
assert\u有\u调用
断言失败,错误为-
Expected: [call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(a=1,b=2,c=3)>),
call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(a=1,b=2,c=3)>)]
Actual:
[call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(b=2,a=1,c=3)>),
call(param2=<MagicMock name='SomeName' id='140133686336928'>, param1=<SomeType(b=2,a=1,c=3)>)]
应为:[调用(param2=,param1=),
调用(param2=,param1=)]
实际:
[调用(param2=,param1=),
调用(param2=,param1=)]
我看到的唯一区别是param1对象的属性顺序在预期和实际中不同。但对象的属性值是相同的。为什么会导致测试失败?在shell或某处进行测试
SomeType(a=1,b=2,c=3)==SomeType(a=1,b=2,c=3)
。也许SomeType
可能需要实现\uuuuueq\uuuuuu
@jamylak yes,返回true。还有SomeType(a=1,b=2,c=3)==SomeType(b=2,a=1,c=3)
在shell或某处测试SomeType(a=1,b=2,c=3)
。也许SomeType
可能需要实现\uuuuueq\uuuuuu
@jamylak yes,返回true。还有SomeType(a=1,b=2,c=3)==SomeType(b=2,a=1,c=3)
?