Pra*_*ush 1 python django selenium unit-testing django-tests
我正在尝试遵循 Python TDD O'Reilly。
我知道他们使用的 django 版本是旧版本,但是,即使在进行了所有可能的修改之后,我仍然收到此错误。
我的 urls.py 文件:
超级列表.urls.py
from django.contrib import admin
from django.urls import path, include, re_path
from django.conf.urls import url
urlpatterns = [
path('admin/', admin.site.urls),
path('',include('lists.urls')),
]
Run Code Online (Sandbox Code Playgroud)
列表.urls.py
urlpatterns = [
path('/', home_page)
]
Run Code Online (Sandbox Code Playgroud)
列表.views.py
from django.shortcuts import (render, HttpResponse)
from rest_framework.decorators import api_view
# Create your views here.
@api_view()
def home_page(request):
return HttpResponse('Response')
Run Code Online (Sandbox Code Playgroud)
列表.tests.py
from django.test import TestCase
from .views import home_page #
class HomePageTest(TestCase):
def test_root_url_resolves_to_home_page_view(self):
found = reverse('/')
self.assertEqual(found.func, home_page)
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?我尝试搜索这个问题很长时间,但没有成功。
小智 5
该reverse函数的使用方式如下(Django 文档):
reverse(viewname, urlconf=None, args=None, kwargs=None, current_app=None)\xc2\xb6\nRun Code Online (Sandbox Code Playgroud)\n“viewname 可以是 URL 模式名称或可调用视图对象”
\n您正在尝试使用链接到视图的 URL 路径来引用该视图。您实际需要做的是将 URL 模式名称添加到您的path调用中,并引用它。所以你可以使用:
path(\'/\', home_page, name=\'home\')\nRun Code Online (Sandbox Code Playgroud)\n进而
\nfound = reverse(\'home\') \nRun Code Online (Sandbox Code Playgroud)\n此外,该reverse函数返回链接到您的视图的 URL 路径,而不是实际的视图。所以你的.assertEqual测试仍然会失败。您可能会发现Django 文档中的 URL 反向解析示例很有帮助。
| 归档时间: |
|
| 查看次数: |
12438 次 |
| 最近记录: |