【问题标题】:Django test client get returns 404 however works in shellDjango 测试客户端获取返回 404 但是在 shell 中工作
【发布时间】:2016-04-07 21:12:00
【问题描述】:

这是我在 Django 中的第一个测试 - 这是一个简单的视图测试,断言响应为 200。

我正在使用身份验证,所以我首先创建了一个测试用户:

class SettingsTests(TestCase):

def setUp(self):
    self.client = Client()
    self.username = 'test_user'
    self.email = 'test@whatever.com'
    self.password = 'test'
    self.user = User.objects.create_user(self.username, self.email, self.password)


def tearDown(self):

    self.user.delete()

这是我试图测试视图的实际测试:

def test_settings_view_is_diplayed_correctly(self):

    login = self.client.login(username = self.username, password = self.password)
    response = self.client.get('/')
    self.assertEqual(response.status_code, 200)

这总是返回 404,但是如果我在 shell 中尝试相同的操作,它会工作并返回 200!

有人可以告诉我这里有什么问题吗?

【问题讨论】:

  • 请显示返回 404 的视图。
  • @Alasdair - 你解决了问题!该视图有一个导致此问题的 get_object_or_404 快捷方式!我的错!非常感谢您的建议! :)

标签: python django


【解决方案1】:

正如 Alasdair 所建议的那样,问题在于视图。我有一个 get_object_or_404 快捷方式,但没有提供所需的对象。因此,视图返回 404 并且测试失败了......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多