2016-07-07 2 views
4

은 내가 플라스크에 구현 된 JSON API를 테스트하기 위해 노력하고있어Flask에서 만든 API의 응답을 확인하기위한 단위 테스트를 만드는 방법은 무엇입니까?

여기 내보기 기능

@app.route("/dummy") 
def dummy(): 
    return {"dummy":"dummy-value"} 

있어 그리고 내 유닛 테스트에서 나는, 그러나

def setUp(self): 
    self.app = my_app.app.test_client() 

def test_dummy(self): 
    response = self.app.get("/dummy") 
    self.assertEqual(response['dummy'], "dummy-value") 

를 사용하여 테스트있을 때 I 그것을 실행하면 오류가 발생합니다. TypeError: 'dict' object is not callable

답변

8

, 당신이 지금 나를 위해 실행되는 HTTP 응답

import json 

class MyAppCase(unittest.TestCase): 
    def setUp(self): 
     my_app.app.config['TESTING'] = True 
     self.app = my_app.app.test_client() 

    def test_dummy(self): 
     response = self.app.get("/dummy") 
     data = json.loads(response.get_data(as_text=True)) 

     self.assertEqual(data['dummy'], "dummy-value") 

밖으로 JSON을 당겨해야합니다.

0

사전 개체가 아닌 문자열을 반환해야합니다!

@app.route("/dummy") 
def dummy(): 
    return flask.jsonify(dummy="dummy-value") 

그리고 테스트에

json.loads(..)를 사용하여 JSON을 구문 분석하고 주장한다. jsonify() 수정 오류

from flask import jsonify 
@app.route("/dummy") 
def dummy(): 
    return jsonify({"dummy":"dummy-value"}) 

그리고 시험 'dict' object is not callable를 사용

관련 문제