美文网首页
test单元测试接收form和json

test单元测试接收form和json

作者: 晓函 | 来源:发表于2020-12-17 11:03 被阅读0次

在用unittest库对flaks app进行单元测试时,有时需要模拟post请求发送数据

使用post请求发送的数据,一般有两种格式,一种是表单数据,一种是json数据,两种数据在flask的后端获取的操作也不同,对应的在测试时,模拟方式也不同

表单数据

后端拿数据

request.form[key]
request.form.get(key)

测试时构造

class RestUnitTest(TestCase):
    def setUp(self) -> None:
        app.testing = True
        self.client = app.test_client()

    def test_UserLogin(self, mock_getpwd):
        rv = self.client.post('/users/root/login', data={"password": "123456"})
        self.assertEqual(rv.status_code, 200)

表单数据在构造时就是一个字典,以各种方法构造出一个字典作为data的值传入即可

json数据

后端拿数据

request.json[key]
request.json.get(key)

测试时构造

class RestUnitTest(TestCase):
    def setUp(self) -> None:
        app.testing = True
        self.client = app.test_client()

    def test_UserLogin(self, mock_getpwd):
        rv = self.client.post('/users/root/login', content_type='application/json', data='{"password": "123456"}')
        self.assertEqual(rv.status_code, 200)

json数据是一个字符串,所以data的值要传入一个字符串,同时因为json不是默认格式,必须加入 content_type='application/json' 说明数据格式

相关文章

网友评论

      本文标题:test单元测试接收form和json

      本文链接:https://www.haomeiwen.com/subject/lzaagktx.html