测试活动处理程序使用Pytest

问题描述 投票:0回答:1

考虑一个模块,该模块可以在某种情况下注册事件处理程序并发射它们:

# mymodule/myfile.py
_event_handlers = []
def register_event_handler(handler):
    _event_handlers.append(handler)

def fire_event_handlers():
    for handler in _event_handlers:
        handler()

我现在想测试事件处理程序的注册工作:

# tests/test_mymodule.py
from mymodule.myfile import register_event_handler, fire_event_handlers

def test_event_handler():
    def example_handler():
        pass

    register_event_handler(example_handler)
    fire_event_handlers()
    # assert example_handler was called

我如何测试我的功能是否称为?

有一些使用

example_handler

的类似测试用例(例如,如何断言称为pytest

的嵌套功能),但是由于我不想模拟模块的任何现有函数,所以我看不到如何在这里使用它。
    
您可以使用unittest.mock

跟踪是否在不嘲笑任何现有函数的情况下调用
python event-handling pytest function-call
1个回答
0
投票
是否被调用

example_handler

    

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.