【问题标题】:How to test details, delete etc如何测试细节,删除等
【发布时间】:2014-11-11 21:53:12
【问题描述】:

我有这个网址:

url(r'^detail/(?P<pk>\d+)/$', views.Details.as_view(), name='detail'),

我的测试:

def test_detail(self):
    resp = self.client.get("/detail/")
    self.assertEqual(resp.status_code, 200)

在我的测试结果中,我得到:

AssertionError: 404 != 200

如何测试这个?

【问题讨论】:

  • reverse 是做什么的?
  • @adarsh 获取url的名称
  • 我个人更喜欢手动编写 url,因为这样测试“更容易”破坏,例如,如果反向只是补充不良行为。无论如何,尝试打印返回的值。还有其他原因导致您的视图代码返回 404 吗?
  • URL 需要 pk - 这不是可选的。因此是 404。除非您有另一个与 /detail 完全匹配的目标,例如:url(r'^detail/$',否则这肯定会失败。

标签: python django testing python-unittest


【解决方案1】:

您的详细视图 url 条目需要获取详细信息

reverse('detail', args=[your_detail.pk])

在您出错的测试中,pk 不匹配,因为您没有包含值。

【讨论】:

  • 我这样做:resp = self.client.get(reverse("detail", kwargs={'pk': 1})) 并得到: NoReverseMatch: Reverse for 'detail' with arguments ' ()' 和关键字参数 '{'pk': 1}' 未找到。尝试了 0 个模式:[]
  • 已尝试 0 种模式!你的应用注册了吗?您的 url 条目是在您的应用程序 urls.py 还是在您的项目中?您的条目是否已命名空间?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
相关资源
最近更新 更多