今天我正在学习在Django中编写测试用例,并编写了一个用于检查有效用户身份验证的测试用例。
from django.test import TestCase
from django.http import HttpRequest
from aptly_dash.views import newRepo, homePage
from selenium import webdriver
from django.test import Client
class MyTestCase(TestCase):
def setUp(self):
self.client = Client()
self.browser = webdriver.Firefox()
#
def tearDown(self):
self.browser.quit()
def test_redirect(self):
response = self.client.get('/admin/')
self.assertRedirects(response, '/admin/login/?next=/admin/')
def test_login(self):
# Issue a GET request.
response = self.client.login(username='rakesh', password='ranjan')
print response
我已经创建了username='rakesh'
和password='ranjan'
,但response
将成为False
。我是编写测试用例的新手,如果有人能告诉我test_login
函数有什么问题,我会很感激。我还想编写一个测试用例来检查django URL是否被403禁止未经身份验证的用户,而403-禁止经过身份验证但不禁止员工用户。任何人都可以给我一个很好的文档。
答案 0 :(得分:1)
尝试将用户添加到设置中:
def setUp(self):
self.client = Client()
user = User.objects.create_user('rakesh', 'rakesh@rakesh.com', 'ranjan')
self.browser = webdriver.Firefox()
每次运行测试时,您都有一个新的数据库'。
如果您想登录用户,要执行某些测试,您需要在每个TestCase上创建他。
最后,您需要记住在您之前创建用户帐户 可以使用这种方法。如上所述,测试运行器是 使用测试数据库执行,默认情况下不包含任何用户。如 结果,在您的生产站点上有效的用户帐户将 不能在测试条件下工作。您需要创建用户作为其中一部分 测试套件 - 手动(使用Django模型API)或使用 测试夹具。请记住,如果您希望测试用户拥有 密码,您无法通过设置密码来设置用户的密码 直接属性 - 您必须使用set_password()函数进行存储 正确的哈希密码。或者,您可以使用 create_user()helper方法,用于正确创建新用户 哈希密码。
也许看到这个doc,可以提供帮助