我正在尝试在 Python 中模拟一个枚举,以便我可以断言测试的类的方法是否调用枚举上的方法。
这不能按预期工作。有问题的方法永远不会被调用,因为模拟与实际枚举的身份比较总是失败。
class ProcessorTest(unittest.TestCase):
def test_do_something(self):
# Mock library does not work with enums..
self.mock_camera = mock.create_autospec(Camera.exit)
self.processor.process(self.mock_camera)
# => always leads to "failed"
self.assertTrue(self.mock_camera.do_something.called,
"Failed")
class Camera(Enum):
entrance = 1
exit = 2
def do_something(self):
return True
class Processor:
def process(self, camera):
# this comparison always resolves to false
if camera is Camera.exit:
# never reached
camera.do_something()