Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
联合测试中的错误。Python模板发布订阅_Python - Fatal编程技术网

联合测试中的错误。Python模板发布订阅

联合测试中的错误。Python模板发布订阅,python,Python,我有一个任务: 需要创建实现发布-订阅模板并包含两个方法的发射器类: 在(事件、处理程序)上- 将处理程序绑定到事件“event” 发出(事件、数据)—— 生成事件“event”,调用与此事件关联的所有处理程序(如果有),并将它们作为“data”参数传递 我用Python做了如下工作: # -*- coding: utf-8 -*- class Emitter: def __init__(self): self._handlers = {} def o

我有一个任务:

需要创建实现发布-订阅模板并包含两个方法的发射器类:

在(事件、处理程序)上- 将处理程序绑定到事件“event”

发出(事件、数据)—— 生成事件“event”,调用与此事件关联的所有处理程序(如果有),并将它们作为“data”参数传递

我用Python做了如下工作:

    # -*- coding: utf-8 -*-

class Emitter:
    def __init__(self):
        self._handlers = {}

    def on(self, signal, handler):
        self._handlers[signal] = handler

    def emit(self, signal, data):
        func = self._handlers.get(signal)
        if func is None:
            raise ValueError('Wrong emit key')
        return func(data)


def print_connected(data):
    print('first: {0}'.format(data))


def print_disconnected(data):
    print('second: {0}'.format(data))

if __name__ == '__main__':
    emitter = Emitter()
    emitter.on('connect', print_connected)
    emitter.on('disconnect', print_disconnected)
    emitter.emit('connect', 'http-server')
    # prints to console:
    # > We have been connected to http-server
    emitter.emit('connect', 'websocket')
    # prints to console:
    # > We have been connected to websocket

    emitter.emit('disconnect', 'websocket')
    # prints to console:
    # > We disconnected from websocket
    emitter.emit('disconnect', 'http-server')
    # prints to console:
    # > We disconnected from http-server
这些任务的完成应该伴随着提供给我的单元测试。通过测试代码的3/5,发出一个错误和一个失败。这是:

带有单元测试的GitHub存储库链接,以及用于解决此任务的模板


Unite测试位于文件夹“test”->“task-3”中,任务模板位于“task-3”中。

问题似乎出在模拟调用的单元测试代码中,而不是实际代码中。永远不要发布外部链接(除了案例引用stackoverflow中的现有答案外)-没有人会帮你去那里。在这里发布,否则没有人会看到问题的根源。问题出在单元测试代码中的某个地方,所以在这里发布它。