我正在用pytest测试我的代码,并试图找出最直接的方法来测试我的一个类的方法.
我有一门课,比如:
class MyClass():
def __init__(self, stuff):
...
..
..
def _method_of_interest(self, list1, list2):
..some logic that depends on list1, list2, and self.relevant_info
return output
我想将方法_method_of_interest
作为一些列表1、列表2和self的函数进行测试.相关信息组合.我更愿意不必实例化MyClass的真实对象,因为在逻辑链的其他地方有一些耗时的计算,我无法轻松创建具有我想要测试的self.relevant_info
个值的完整范围的对象.
对于我来说,测试这个方法的输出的最干净的方法是什么,使用不同的list1、list2和self.相关信息值?
具体来说,我们可以假设_method_of_interest
是:
def _method_of_interest(list1, list2):
return list1 + list2 + list(self.relevant_info)
我在哪里.相关的_info是一个python set()对象.
有什么建议吗?网上有很多关于模仿、修补等的内容,但这些例子看起来都比我的 case 更复杂,解决问题的各种方法让我不确定哪种方法最干净.