默认情况下,django在运行测试时会创建一个测试数据库,这给我带来了一些不便:
我正在编写测试的API使用数据库。当我运行测试时,会创建一个新数据库,一些虚拟数据将被插入到测试数据库中,并且http post请求将被发送到被测试的API。发生的情况是我的测试API没有看到插入的数据。
解决问题后,使用数据库测试API的正确解决方案/最佳实践是什么?
答案 0 :(得分:0)
我假设你正在做REST服务,最好是使用Django Rest Framework(DRF)。如果没有,请查阅。
测试自己的API的正确方法是:
创建一个继承APITestCase的类。
在课堂上创建一个测试函数,例如:test_my_thing(self):
使用django'verse'函数生成测试API的URL。
使用self.client.get,self.client.post,self.client.delete并将响应存储在变量中。
response.json()以json格式为您提供响应正文
断言回复。
答案 1 :(得分:0)
您必须在设置中正确指定测试数据库名称。 https://docs.djangoproject.com/en/dev/topics/testing/overview/#the-test-database
此外,您可以尝试在测试中使用具有虚拟数据的灯具。它们将在测试运行前加载。