1. ホーム
  2. python

[解決済み] モックパッチによるインスタンスメソッドのモック化

2023-03-10 03:12:46

質問

Django のアプリをテストする際に、モックを作ろうとしているのですが、想像上の名前で モックテストライブラリ . 私はそれを動作させるためにかなり得ることができないようです、私はこれをしようとしています。

models.py

from somelib import FooClass

class Promotion(models.Model):
    foo = models.ForeignKey(FooClass)
    def bar(self):
       print "Do something I don't want!"


test.py

class ViewsDoSomething(TestCase):
    view = 'my_app.views.do_something'

    def test_enter_promotion(self):
        @patch.object(my_app.models.FooClass, 'bar')
        def fake_bar(self, mock_my_method):
            print "Do something I want!"
            return True

        self.client.get(reverse(view))

私は何を間違えているのでしょうか?

どうすればよいのでしょうか?

ああ、あのパッチデコレータをどこに適用すればいいのか、混乱していたんだ。修正しました。

class ViewsDoSomething(TestCase):
    view = 'my_app.views.do_something'

    @patch.object(my_app.models.FooClass, 'bar')
    def test_enter_promotion(self, mock_method):
        self.client.get(reverse(view))