我正在编写一个在网络上调用的Python库。在编写文档时,我想以doctest的形式提供一个示例:
class Endpoint:
"""RPC endpoint representation for a service.
>>> from ankhor import Endpoint
>>> e = Endpoint("_hello_service._tcp.example.com")
>>> e.say_hello(name="John Doe")
'hello, John Doe!'
>>>
"""
当运行doctest时,这显然会失败,因为example.com
域不存在。我想通过模拟Endpoint
类使用的解析器,并在服务启动之前启动一个示例服务,使这个测试通过。在
我很明显可以用这样的方法:
^{pr2}$但这极大地扰乱了示例代码。在
因此,最终的问题是:我如何使第一段示例代码的整洁性与后一段代码的行为相同(后者同时模拟了服务和发现)?在
注意,这个问题与Using Mocks inside Doctests?不同,后者的目标是使用一个mock;这个问题的目标是保持示例可读,同时仍然可以运行。在
好处:在第二个示例中,我必须将测试类放在Python主模块树中。如果它们只在运行doctest时加载就好了。在
目前没有回答
相关问题 更多 >
编程相关推荐