你说什么都对

  • 首页
  • 技术
  • 工具分享
  1. 首页
  2. 技术
  3. Python
  4. Django
  5. 正文

Django test.py 正确解锁方式

2022年11月3日 165点热度 0人点赞 0条评论
  1. 首先Django的test也是直接调用的unittest规则,所以,建议在有顺序执行的TestCase中使用0-9, a-z这样的顺序进行一些排序
    例如:
test_01_registerEquip_get
test_02_registerEquip_post_rightdata
test_03_registerEquip_post_errordata
  1. setUpClass/tearDownClass会被调用一次,setUp/tearDown每个函数执行的时候都会被调用
    所以需要一开始就初始化的数据内容,建议放在setUpClass,并且做好保护,譬如设置已存在就不再create数据
    @classmethod
    def setUpClass(cls) -> None:
        eType_num = EquipType.objects.filter(equip_type='TestType1').count()
        if eType_num == 0:
            eType = EquipType.objects.create(equip_type='TestType1')
        else:
            eType = EquipType.objects.get(equip_type='TestType1')
        eqs_num = Equip.objects.filter(name='TestDevice1', equip_type=eType).count()
        if eqs_num == 0:
            eqs = Equip.objects.create(name='TestDevice1', equip_type=eType, status='free')
        else:
            eqs = Equip.objects.get(name='TestDevice1')
  1. HttpResponse和JsonResponse不能直接判断,需要做一些转换读取
def test_01_registerEquip_get(self):
    res = self.client.get('/equip/API/RegisterEquip/', format='json')
    res_dict = json.loads(str(res.content,'utf-8'))
    self.assertEqual(res_dict['ReturnCode'], 200)
  1. 每个测试函数运行的数据都会被建立及被摧毁,所以如果函数间存在依赖关系的话,得在有依赖的函数中再次引用被依赖函数的数据构建方法
def test_05_updateEquipStatus_post_rightdata(self):
    res = self.client.post('/equip/API/UpdateEquipStatus/', data=self.equipStatus_data)
    res_dict = json.loads(str(res.content,'utf-8'))
    self.assertEqual(res_dict['ReturnCode'], 200)

def test_08_updateTaskInfo_post_rightdata(self):
    res1 = self.client.post('/equip/API/UpdateEquipStatus/', data=self.equipStatus_data)
    res = self.client.post('/equip/API/UpdateTaskInfo/', data=self.taskInfo_data)
    res_dict = json.loads(str(res.content,'utf-8'))
    self.assertEqual(res_dict['ReturnCode'], 200)
  1. 注意点:构建原变量的错误变量时,记得用.copy的方式构建,避免直接赋值,会改变原来的引用变量中的结果
# 正确的赋值方式
reg_errordata = self.register_data.copy()
reg_errordata['equipType'] = 'TestType2'

# 错误的赋值方式,self.register_data被改变了
reg_errordata = self.register_data
reg_errordata['equipType'] = 'TestType2'
标签: Django Python
最后更新:2022年11月3日

老虎猪

健康、快乐、品质生活

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

最近评论
最新 热点 随机
最新 热点 随机
Jenkins部署 在OneNote里使用markdown语法-OneMark 群晖使用花生壳搭建WordPress bootstrap table 图标显示解决 bootstrap div 居中显示 Django根据字段自动从dict中获取值
在OneNote里使用markdown语法-OneMark bootstrap table 图标显示解决 Jenkins部署 Django 重置数据库 Django test.py 正确解锁方式 Eclipse配置PHP开发环境+XDebug调试环境

COPYRIGHT © 2022 你说什么都对. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙公网安备 33022602000616号