账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    django的单元测试
    96
    0

    在django的单元测试中,模拟用户登录,用户名密码均正确,但是views.py的函数获取request.user.pk始终为None
    代码如下:

    class driverTestCase(TestCase):
        def setUp(self):
            user = User.objects.create_user(username='management', password='123456')
            company = CompanyModel.objects.create(name='公司1')
            UserProfile.objects.create(user=user, company=company,userType=1)
            CompanyModel.objects.create(name='公司2')
            self.data ={
                'username': 'management',
                'password': '123456'
            }
            self.client = Client()
       def test_get_driverinfo(self):
            ss = self.client.login(username='management',password='123456')
            print('vvvvvvvvvvvv',ss)  ##输出ss为True
            url = reverse('add_driverinfo')
            data = {
                'data': json.dumps({
                    'jobNumber': '123456',
                    'name': '张三',
                    'company': '公司1',
                    'gender': '女',
                    'phonenum': '15256589001',
                    'license': '34242311155654',
                    'licenseStart': '2019-03-01 00:05:05',
                    'licenseExpire': '2019-12-01 00:05:05'
                })
            }
            res = self.client.post(url, data)

    下面为url为add_driverinfo的视图函数

    def add_deviceinfo(request):
        if request.method == 'POST':
            print('aaaaaaaaaaa',request.user.pk)
           
            return HttpResponse(json.dumps(message), content_type='application/json')

    这里的request.user.pk始终为None,但是测试前我已经self.client.login()登录用户,为何还获取不到呢?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • ⑴個人的寂寞 普通会员 1楼

      Django是一个开源的Python Web框架,它包含许多功能,包括数据库操作,模板渲染,请求处理等。然而,它并不是一个直接的单元测试框架,因为它主要用于开发,而不仅仅是测试。Django的测试主要是通过测试模板、视图和数据库等。然而,你也可以使用Django的测试框架,这需要一些额外的配置和工作。

      如果你打算使用Django的测试框架,你可以按照以下步骤进行:

      1. 安装测试框架:在你的Django项目中,你可以使用pip来安装测试框架,例如pip install django-test

      2. 设置测试框架:在你的Django项目的settings.py文件中,你可以设置测试框架。例如,如果你想要使用Python的unittest框架,你可以这样设置:

      python INSTALLED_APPS = [ # ... 'django.contrib.test', ]

      1. 创建测试:在你的视图中,你可以使用unittest.TestCase来创建测试。例如,你可以创建一个名为MyView的视图,然后在它的test_view方法中编写测试代码:

      ```python from django.test import TestCase from django.http import HttpResponse

      class MyViewTest(TestCase): def test_view(self): response = HttpResponse('Hello, world!') self.assertEqual(response.status_code, 200) ```

      1. 运行测试:你可以使用Django的python manage.py test命令来运行你的测试。这将生成一个测试报告,显示你的测试结果。

      请注意,这只是一个基本的示例。你可能需要根据你的具体需求和项目来调整和扩展这个示例。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部