用factory_boy测试django帖子

时间:2015-10-30 10:09:34

标签: django integration-testing django-serializer factory-boy

我刚刚开始在我的测试中使用Factory boy,而且效果很好。

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

我希望我的测试内容类似于:

a = self.client.post(
    my_url,
    json.dumps(my_factory.stub()),
    content_type="application/json")
assert a.status_code == 403

这显然不起作用。 我得<factory.containers.StubObject object at 0x7ffa34e375d0> is not JSON serializable 有没有办法做到这一点?或者我需要自己填写所有的帖子数据? (我没有测试表单本身或验证,只是后期响应。

干杯

1 个答案:

答案 0 :(得分:1)

<User>是一个django模型,并不知道如何将自己表示为JSON。您需要使用来自ModelSerializer的{​​{1}}或django builtin serializing功能的序列化程序: 的 tests.py

rest-framework

请注意,大多数使用 django测试客户端的任何测试都会被视为集成测试

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

如果您希望更多地进行单元测试,请尝试here中的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