1 回答

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個贊
如果您的目標(biāo)是為自己提供一種簡單且安全的“模擬和測試”方式,那么您可能最好使用由提供的模擬庫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
現(xiàn)在,當(dāng)測試運(yùn)行時(shí),將用模擬對象mock替換任何內(nèi)容。因此,當(dāng)運(yùn)行時(shí),它將返回,而將返回一個對象,該對象具有一個帶有值的屬性和一個返回的方法。module_name.dependency1.specific_method_or_attributemodule_name.dependency2module_name.dependency2()42specific_method()Mock"foo"some_method()"bar"
您可以使用它來模擬函數(shù)、類甚至模塊。
添加回答
舉報(bào)