我有一个用Django Rest Framework构建的端点。当我用Postman之类的东西测试它时,它工作得很好,但我的单元测试失败了。
当我测试我的JSON端点时,我总是发布Python dicts而不是JSON字符串,就像这样:
response = self.client.post('/json-endpoint/', {'a': 1}, format='json')
当我测试XML端点时,我试图发布一个原始的XML字符串,如下所示:
response = self.client.post('/xml-endpoint/', '<?xml version="1.0" encoding="UTF-8" ?><myDataStructure></myDataStructure>', format='xml')
但这不管用。在我的Viewset中,我覆盖了create()
方法,在那里,我的XML似乎被“打包”到另一个XML中。如果我在create()方法中打印出request.body
,我会看到这个:
b'<?xml version="1.0" encoding="utf-8"?>\n<root><?xml version="1.0" encoding="UTF-8" ?>\n<myDataStructure>\n etc..
正如您所看到的,我的XML以某种方式进行了编码,然后打包成另一个<?xml version="1.0" encoding="utf-8"?>\n<root>
。
当我为XML端点编写单元测试时,如何正确地提供XML?
1条答案
按热度按时间agxfikkp1#
在单元测试中,我使用以下命令: