我希望下面的测试通过,但我总是得到一个404错误。但我希望“获取所有”请求返回所有用户。
import json
from django.test.utils import override_settings
from django.urls import path, include
from rest_framework import routers
from frontend.tests.mocks import views
from django.test import TestCase
app_name = 'frontend'
router = routers.SimpleRouter()
router.register('api/', views.UserModelViewSet)
urlpatterns = [
path('', include(router.urls)),
]
@override_settings(ROOT_URLCONF=__name__)
class TestJsonSchemaSerializer(TestCase): # APITest doesn't work either
def test_custom_serializer(self):
resp = self.client.get('/frontend/api/')
self.assertEquals(resp.status_code, 200)
print(resp.status_code, json.dumps(resp.json()))
字符串
1条答案
按热度按时间tmb3ates1#
需要注意的几点:
如果你想让一个路由只在运行测试时存在/注册,你可以有条件地添加它。一个好的方法是:
IS_TEST=True
这样的变量urls.py
文件中,使用此设置有条件地注册视图最重要的是,作为良好的实践,您应该将API注册到**/API/,并将视图集注册为子路径,如/API/users/**
字符串
然后你可以更新:
override_settings
python manage.py tests settings=[project].settings.test
型