我正在为我制作的wsgi服务器编写测试。 __init__
构造函数中的服务器类将其他类的2个实例作为成员。让我们说
def __init__(self):
self.a = A()
self.b = B()
在测试期间,我如何模拟self.a和self.b作为我为他们制作的模拟类而不是使用A和B?
#I use this if I want to mock the entire server class
@mock.patch('myproject.server.MyServerClass',autospec=True)
答案 0 :(得分:3)
我写的python越多,我对这种情况就越好奇。我倾向于引入依赖注入并在构造函数中传入创建的A和B类。这样可以很容易地看到外部依赖关系并在需要时更改它们。但有时这太过分了。你能不能只是:
server = Server()
server.a = MockA()
server.b = MockB()