用工厂男孩测试django柱

用工厂男孩测试django柱,django,integration-testing,django-serializer,factory-boy,Django,Integration Testing,Django Serializer,Factory Boy,我刚开始在测试中使用它,它工作得很好 我想测试crud视图,所以在某个时候,我需要发布数据(json)以进行创建和更新操作 我希望我的测试内容是: a = self.client.post( my_url, json.dumps(my_factory.stub()), content_type="application/json") assert a.status_code == 403 这显然不起作用。 我得到的不是JSON可序列化的 有办法吗?或者我需要自己填写所有

我刚开始在测试中使用它,它工作得很好

我想测试crud视图,所以在某个时候,我需要发布数据(json)以进行创建和更新操作

我希望我的测试内容是:

a = self.client.post(
    my_url,
    json.dumps(my_factory.stub()),
    content_type="application/json")
assert a.status_code == 403
这显然不起作用。 我得到的
不是JSON可序列化的
有办法吗?或者我需要自己填写所有的post数据? (我不是在测试表单本身或验证,只是测试post响应

Cheers

是django模型,不知道如何将自己表示为
JSON
。您需要使用类似
rest framework
中的
ModelSerializer
之类的序列化程序,或者使用以下功能: 测试.py

from django.core import serializers
data = serializers.serialize('json', my_factory.stub(), fields=('id'))

a = self.client.post(
    my_url,data,
    content_type="application/json")
assert a.status_code == 403
请注意,使用django测试客户端进行的任何测试都将被most视为集成测试

这并不意味着这是一个糟糕的测试,我有很多测试,就像你的一样,但是它们是集成测试

如果您想让这更像是一个单元测试,请从中尝试
setup\u view