1 回答
TA贡献1825条经验 获得超4个赞
如果您的目标是为自己提供一种简单且安全的“模拟和测试”方式,那么您可能最好使用由提供的模拟库unittest(顺便说一下,它也很像 .NET 中的模拟)。有了这个,你可以做这样的事情:
from unittest.mock import Mock, patch
from django.tests import TestCase
class MySimpleViewTestCase(TestCase):
@patch('module_name.dependency2')
@patch('module_name.dependency1.specific_method_or_attribute')
def test_something_about_mysimpleview(self, mock_dependency1, mock_dependency2):
mock_dependency1.return_value = Mock(some_attribute="foo", some_method.return_value="bar")
mock_dependency2.return_value = 42
# do your testing of MySimpleView
现在,当测试运行时,将用模拟对象mock替换任何内容。因此,当运行时,它将返回,而将返回一个对象,该对象具有一个带有值的属性和一个返回的方法。module_name.dependency1.specific_method_or_attributemodule_name.dependency2module_name.dependency2()42specific_method()Mock"foo"some_method()"bar"
您可以使用它来模拟函数、类甚至模块。
添加回答
举报