我想为我的django项目使用依赖注入。为此,我尝试pinject包。就像在ASP.NET,所有依赖项都在构造函数中给出,这很好,因为它很容易测试。我还想在我的django项目中归档类似的内容。在
我有一个简单的观点:
class MySimpleView(View):
def __init__(self, dependency1, dependency2, **kwargs):
super().__init__(**kwargs)
...
我定义绑定的地方
^{pr2}$我希望能像这样使用它。在
# urls.py
urlpatterns = [
path('path/to/my/view', obj_graph.provide(MySimpleView).as_view()),
]
但不幸的是,django不允许从实例调用.as_view()
。在
有没有简单的方法可以将依赖项注入到我的视图中,这样我就可以轻松地进行模拟和测试了?在
如果您的目标是为您自己提供一种简单而安全的方法来进行'模拟和测试,那么您最好使用
unittest
提供的{a1}(顺便说一下,这也很像.NET中的mocking)。有了这个,你可以这样做:现在,当测试运行时,}。因此,当}将返回一个的方法
mock
将用模拟对象替换module_name.dependency1.specific_method_or_attribute
和{module_name.dependency2()
运行时,它将返回42
,而{Mock
对象,该对象具有值为"foo"
的属性和返回{some_method()
。在您可以使用它来模拟函数、类甚至模块。在
相关问题 更多 >
编程相关推荐