如何在Python中测试get方法

2024-04-23 16:09:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图测试一个flask-restful api的get方法。我在测试那个api时遇到了问题。在

API是:

class SomeClass(Resource):
    @login_required
    def get(self, some_id):

        print some_id

        """
        some function in this api
        """ 

注册为

^{pr2}$

我正试图为some_classget method编写测试用例。在

测试用例是

def test_get_method(self):
    rv = self.client.get('/v1/some_exp/1')
    assert rv.status == '200 OK'

当我运行这个测试用例时,我发现get方法正在被调用,但是get方法中的some_id的值不是以1的形式出现的,而是其他一些随机数。现在,我没有这种不寻常的行为。在

我是第一次接触python和测试api。任何有用的建议都会有帮助!在

谢谢


Tags: 方法selfapirestfulidflaskgetdef
1条回答
网友
1楼 · 发布于 2024-04-23 16:09:18

我发现了错误。实际上,这个API是用@login_required装饰器修饰的,我没有发送与登录相关的所需头。在

我将测试更新为:

def login(self, username, password):
    return self.client.post(url_for('security.login'), data=dict(
        email=username,
        password=password
    ), follow_redirects=False)


def test_get_method(self):
    response = self.login('test@gmail.com', 'password')
    rv = self.client.get('/v1/some_exp/1', headers=response.headers)
    assert rv.status == '200 OK'

这样做之后,测试用例运行得很好。在

谢谢!!在

相关问题 更多 >