私は、次のシナリオがあります。私のutils.pyファイルに私のmodels.pyでモッキングDjangoのモデルと保存()
class FooBar(models.Model):
description = models.CharField(max_length=20)
を。 tests.py
from utils import save_foobar
@patch('utils.FooBar')
def test_save_foobar(self, mock_foobar_class):
save_mock = Mock(return_value=None)
mock_foobar_class.save = save_mock
save_foobar('some value')
#make sure class was created
self.assertEqual(mock_foobar_class.call_count, 1) #this passes!!!
#now make sure save was called once
self.assertEqual(save_mock.call_count, 1) #this fails with 0 != 1 !!!
これは私が何をしようとしているの簡易版...ので、私はutilsのファイルを持っている理由にhungup取得しないでくださいとで
from models import FooBar
def save_foobar(value):
'''acts like a helper method that does a bunch of stuff, but creates a
FooBar object and saves it'''
f = FooBar(description=value)
f.save()
このためのヘルパー関数(実際にはいくつかのことをしています)。また、簡略化したものの、これは私の問題の実際の実例です。 call_countをテストする最初の呼び出しは1を返し、成功します。しかし、2番目のものは0を返します。したがって、私のパッチが動作していて、呼び出されているように見えます。
FooBarのインスタンスが作成されるだけでなく、その保存メソッドが呼び出されることをテストするにはどうすればよいですか?ここで
あなたは答えに私を打つ! – fuzzyman
私の質問に応答するUpvote!どうもありがとうございました! –
@matthew!どうもありがとうございました! –