我正在寻找允许跟踪方法和函数调用的库。可以把它看作是提供called
和call_count
属性的Mock。
需要的最终结果示例:
s = MagicProxyLib()
@s
class MyClass:
def not_called(self):
print("This is not called")
def first_method(self):
print("First is called")
def second_method(self):
print("Second is called")
mc = MyClass()
mc.first_method()
mc.second_method()
mc.second_method()
我可以自己实现这样的装饰器,但如果已经有一些具有类似功能的库,我不想重新发明轮子。
我希望能以这样的方式使用这个库
assert not s.called(mc.not_called)
assert s.called(mc.first_method)
assert s.call_count(mc.second_method) == 2
我已经检查了这个答案,但是分析/跟踪并不完全服务于这里相同的目的。谢谢你的包装建议。
您可能需要一个分析器—它们可以收集所有这些使用统计信息。Python附带了一个很好的工具-检查:https://docs.python.org/3/library/profile.html