2017-01-08 2 views
1

私はflask-restful apiのgetメソッドをテストしようとしていました。私はapiをテストする際に問題に直面しています。Pythonでgetメソッドをテストする方法

APIは以下のとおりです。

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

     print some_id 

     """ 
     some function in this api 
     """ 

私がsome_classget methodのためのテストケースを記述しようとしています

api.add_resource(SomeClass, '/v1/some_exp/<some_id>') 

として登録されています。私は、このテストケースを実行したとき

テストケースは、私はgetメソッドが呼び出さなっていることを

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

観察されるが、get方法でsome_idの値が1として出てくるが、いくつかの他の乱数されていません。今、私はこの異常な行動を起こしていません。

私は初めてpythonとtesting apiを初めて使う人です。有用な提案が参考になります!

ありがとうございました

+0

「他の乱数」はどのように見えますか?それはいつも同じものですか? – Ryan

+0

@ライアン:はい、それは同じです、163 –

+0

'print'を削除した場合、番号は表示されませんか? – Ryan

答えて

0

私は誤差を計算しました。実際にその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('[email protected]', 'password') 
    rv = self.client.get('/v1/some_exp/1', headers=response.headers) 
    assert rv.status == '200 OK' 

、テストケースがうまく実行されています。

ありがとうございます!

関連する問題