Python对我来说是一种相对较新的语言。单元测试和依赖注入是我已经做了一段时间的事情,所以我从C#的角度对它很熟悉。
最近,我写了一段Python代码:import requests # my dependency: http://docs.python-requests.org/en/latest/
class someClass:
def __init__(self):
pass
def __do(self, url, datagram):
return requests.post(self, url, datagram)
然后我意识到我刚刚创建了一个硬编码的依赖项。天哪。
我曾考虑过将代码更改为执行“构造函数”依赖注入:def __init__(self,requestLib=requests):
self.__request = requestLib
def __do(self, url, datagram):
return self.__request.post(self, url, datagram)
现在,为了进行单元测试,这允许我注入一个伪/模拟依赖项,但不确定这是否被视为Python ic。所以我呼吁Python社区提供指导。
Python ic做基本DI的方法有哪些例子(主要是为了编写使用mock/Fakes的单元测试)?