我试图在我的单元测试中实现一个mock,但它从未被调用,即使它应该被调用。你知道吗
你知道吗测试.py你知道吗
from mock import patch
class MyTest(TestCase):
def test_add(self):
name = 'Test'
with patch('my_module.my_file.my_function') as add_method:
m = MyModel(name=name)
m.save()
add_method.assert_called_with(name=name)
你知道吗型号.py你知道吗
from my_module.my_file import my_function
class MyModel(Model):
name = CharField(max_length=12)
def save(self, *args, **kwargs):
my_function(self.name)
super(MyModel, self).save(*args, **kwargs)
我的_文件.py你知道吗
def my_function(name):
# Processing...
当我运行单元测试时,它只是告诉我没有调用mock,虽然应该是这样,但我知道脚本运行得很好。你有什么想法/建议给我吗?你知道吗
导入
models
时,它运行from my_module.my_file import my_function
,这还没有模拟。运行测试用例时,models
模块中的my_function
名称已经绑定到real函数:修补my_files
没有任何效果。你知道吗您需要的是修补
models.my_function
:另一种方法是在
models
导入时修补my_file.my_function
。你知道吗参见where to patch文档。你知道吗
相关问题 更多 >
编程相关推荐