6

Factory Boy で自分のコードを適切にテストする方法を見つけたいです。

次のようなモデルがあります。

from django.db import models

class MyModel(models.Model):
    param1 = <some field>
    param1 = <some field>
    param1 = <some field>

    @property
    def is_smth(self):
        <some complicated code that returns boolean>

このモデルの工場があります:

import factory

class MyModelFactory(factory.DjangoModelFactory):
    param1 = <some value>
    param2 = <some value>
    param3 = <some value>

    # And here i need to "rewrite" property of the model
    # so that it would always return true

誰でもそれで私を助けることができますか?factory boy のドキュメントでこれについての言及が見つかりませんでした。私が試したさまざまなバリアントは機能しないようです。

4

3 に答える 3

2

モックを使ってみましたか?

def test_is_smith(self):
    mymodel = MyModel()
    with mock.patch('MyModel.is_smith', new_callable=mock.PropertyMock) as mocked_model:
        mocked_model.return_value = True
        self.assertTrue(mymodel.is_smith)
于 2013-06-04T09:08:10.737 に答える