-1
我有一个模型:Python的魔法模拟不能按预期工作。实际的函数被调用
class Evaluation(models.Model):
def abc(self):
#some logic here
return something
说,我有一个使用此另一个功能:
def filter_graded(evaluations):
return filter(lambda x: x.is_completely_graded(), evaluations)
现在,当我为filter_graded
方法编写测试,我嘲笑is_completely_graded
返回对于某些情况是true/false。该测试不会考虑模拟,而是调用实际的is_completely_graded
。我该如何解决这个问题?
我的测试看起来像:
def test_filter_graded(self):
eval1 = G(Evaluation)
eval2 = G(Evaluation)
eval1.is_completely_graded = mock.MagicMock(return_value=True)
eval2.is_completely_graded = mock.MagicMock(return_value=False)
filter_graded(Evaluation.objects.all())
self.assertEqual(len(result), 1)
当天的第一个编辑... DAT太17sec晚了!! :\ – NoobEditor
在你的测试中没有任何地方是你真正用嘲笑取代真实物体。您正在传递'Evaluation.objects.all()','eval1'和'eval2' *完全不用*。 –