1

今天我在学习用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即将推出 be False。我对编写测试用例相当陌生,如果有人能告诉我我的test_login功能出了什么问题,我将不胜感激。我还想编写一个测试用例来检查 django URL 是否 403 禁止未经身份验证的用户,以及 403 禁止经过身份验证但不是员工用户。谁能给我一个好的文档。

4

1 回答 1

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() 辅助方法创建具有正确散列密码的新用户。

也许看看这个文档,可能会有所帮助

于 2015-10-11T07:39:51.787 回答