这是我在这里的第一篇文章。如果我不是这样做,请立即指导我。提前致谢。
根据教程(The Django test client),我编写了以下测试:
class HomePageTest(TestCase):
def test_home_page(self):
response = self.client.get('/')
print(response.status_code)
根据Django文档:
要解析URL,测试客户端将使用ROOT_URLCONF设置指向的任何URLconf。
我的urls.py:
# my_site/urls.py
urlpatterns = [
url(r'', include('apps.home.urls',namespace='home')),
url(r'^product/', include('apps.product.urls', namespace='product')),
url(r'^order/', include('apps.order.urls', namespace='order')),
url(r'^admin/', admin.site.urls, name='admin'),
]
# apps/home/urls.py
urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
]
我的views.py:
# apps/home/views.py
class IndexView(generic.TemplateView):
def get(self, request, *args, **kwargs):
return render(self.request, 'base/index.html')
# apps/product/views.py
class ProductView(SessionWizardView):
template_name = 'product.html'
instance_dict = {
'item': get_object_or_404(models.Product, name='Shifter'),
}
测试的预期结果是“200”运行:
test tests.HomePageTest --keepdb
然而我收到一个错误:
Http404:没有产品与给定的查询匹配。
发生的错误是因为我没有制作任何“Product”的虚拟实例。 我可以在“def setUp(self)”中这样做,但我发送的请求应该导致应用程序“home”。由于正则表达式不匹配,因此根本不应调用其他应用程序。
为什么甚至可能会调用app“Product”的视图?
提前致谢,Siggy