如题,unittest 中的 case 数据有依赖关系:
例如:case001 新增了一名用户,返回值中会包含一个 id 号
在 case002 中删除 case001 中新增的用户,需要用到返回的 id 号,我的代码如下


class Shiyi_test(unittest.TestCase):

    def setUp(self):
        print("*" * 90)
        self.url = "http://www.baidu.com"
        self.headers = { 'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",}

    def tearDown(self):
        print("*" * 90)

    # 新增用户:
    def test_001_add(self):
        payload = {"Name": 119, "mobile": 119}
        r = requests.post(url=self.url, data=json.dumps(payload), headers=self.headers)
        print(r.json())
        return r.json()['id']

    # 删除用户
    def test_002_del(self):
        d = Shiyi_test.test_001_add()
        print(d)

if __name__ == '__main__':
    unittest.main()

问题出现在第二条 case:
1.直接运行的话,会报错

TypeError: test_001_add() missing 1 required positional argument: 'self'

2.如果在 d = Shiyi_test.test_001_add(self) 加入 self,可以获取 id 值,但是 case002 实际上把 001 新增用户又执行一遍,系统里面就会出现两个用户。
麻烦请教一下,这个错误在哪里呢?具体该怎么传递这一个数值呢?谢谢

PS:查数据库直接获取 id 号是一种方法。想问问,不查数据库,直接靠代码的方式怎么实现呢?

最后,祝大家节日快乐哈!!!


↙↙↙阅读原文可查看相关链接,并与作者交流