每天努力一点点,坚持下去 ------ 博客首页

报错解决:AttributeError: 'TestGeApi' object has no attribute 'client'

代码如下:

复制代码
import unittest

class TestGeApi(unittest.TestCase):

    @classmethod
    def setUpclass(cls) -> None:
        cls.client = GovernmentApiClient(
            GovernmentData.host, GovernmentData.is_check_db, GovernmentData.sql_cfg
        )

    def test_re_pay(self):
        result = GovernmentApiClient().re_pay()
        assert result['code'] == 200, '接口请求失败,code不为200'

        if self.client.check_db:
            platformOrderNo = result['data']['platformOrderNo']  # platformOrderNo=LO20220829000000036
            exe_sql = f"select * from repay_plan WHERE loan_order_no='{platformOrderNo}'"
            db_res = self.client.mysql.exec_sql_query(exe_sql)
            # 校验请求数据和数据库中一致
            assert len(db_res) == 1, f"数据库应只存在一条唯一的数据: {db_res}"

if __name__ == '__main__':
    pytest.main(['test_ge.py'])
复制代码

报错如下:

复制代码
test_ge.py:24 (TestGeApi.test_re_pay)
self = <test_ge.TestGeApi testMethod=test_re_pay>

    def test_re_pay(self):
        result = GovernmentApiClient().re_pay()
        assert result['code'] == 200, '接口请求失败,code不为200'
    
>       if self.client.check_db:
E       AttributeError: 'TestGeApi' object has no attribute 'client'
复制代码

 分析原因:

  • 在setUpclass中,第一行加上print后执行,是没有打印出print信息
  • 断点调试,执行时只是setUpclass了函数名,函数内的内容并没有执行
  • 经过百度搜索是不是函数名与其他的函数名冲突,也不是
  • 继续看百度搜索,函数名是不是拼错了,看了下发现字母没拼错,是setUpclass的首字母都需要大写,而class中的c没有大写,更改成大写C,运行正常了

 

posted @   他还在坚持嘛  阅读(332)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2020-09-13 语法:名词解释【转】
2019-09-13 Python 入门
2019-09-13 运算符
点击右上角即可分享
微信分享提示