问题描述
我正在关注测试驱动开发,并且正在使用混合器、Pytest 和 pytest-django 处理 Django 模型。
这是对 Project 模型的测试:
class TestProject:
def test_model_valid_fields(self,django_user_model):
project = mixer.blend(
'workspaces.Project',title="Road map",non_model_field="some value"
)
assert project.pk == 1
assert project.title == "Road map"
assert project.non_model_field == "some value"
Project 模型,注意 Project 模型只有 title
字段:
class Project(models.Model):
title = models.CharField(max_length=200)
两件事:
- 混合器如何允许使用非模型字段?
- 为什么 Pytest 没有引发错误,因为 Project 模型没有
non_model_field
字段?
我在这里遗漏了什么?
解决方法
您不会告诉mixer
您要创建哪个对象!
尝试设置 project = mixer.blend(Project,title="Road map")