如何将模拟对象分配给此模型上的用户字段?无论如何绕过'“SomeModel.user”必须是“用户”实例'检查?
class SomeModel(models.Model):
user = models.ForeignKey(User)
我没有保存这个模型,它纯粹是为了对该模型上的方法进行单元测试。我也不想创建真正的用户模型。
答案 0 :(得分:0)
你无法绕过那个检查。你能得到的最接近的是:
class SomeModel(models.Model):
user_id = models.IntegerField(max_length=10)
答案 1 :(得分:0)
您可以使用unittest.patch
模拟属性:
class TestThing(django.test.TestCase):
@unittest.patch('my_app.models.SomeModel.user', new_callable=unittest.PropertyMock)
def test_thing(self, user_field):
user_field.return_value = 5
...
这适用于Django字段。