【发布时间】:2019-09-04 20:48:29
【问题描述】:
我正在重构我的整个项目,通过类的构造函数注入依赖项,使其可单元测试。这消除了以独立方式实例化对象的实例(这不是单元可测试的,因为我不再直接控制这些对象)。如果我应该注入像 os 或 json 这样的 python 内置模块,我很困惑。
我创建了一个工厂,它具有返回类或对象的静态方法。这使得依赖注入成为可能。
最初:
import json
def do_something(self):
object_a = UserClassA()
some_value = json.dumps({})
目前:
def do_something(self, factory_object):
object_a = factory_object.get_user_class_a()
some_value = factory_object.get_json().dumps({})
后一种实现使其可单元测试。自定义类 A 和内置模块 json 都已处理。但是,以这种方式注入 json 是使代码可单元测试的正确方法吗?还是打补丁更好?
【问题讨论】:
标签: python-2.7 unit-testing refactoring