如何确保在循环中调用所有处理程序?我想出的最好方法是模拟fake_handler函数并检查该函数是否被调用了一定次数,但我认为可能有更好的解决方案。
class MessageHandler:
def __init__(self, handlers=None):
self.handlers = handlers or []
def handle(self, event, body):
for handler in self.handlers:
handler(event, body)
测试:
def fake_handler(*args, **kwargs):
pass
class TestMessageHandler(TestCase):
@patch('tests.test_handlers.fake_handler')
def test_handle(self, fake_handler_mock):
messages = MessageHandler([fake_handler_mock, fake_handler_mock])
messages.handle(None, None)
self.assertEqual(fake_handler_mock.call_count, 2)
相关分类