2012-01-30 41 views
13

ứng dụng kiểm tra Flask được thực hiện với:Làm cách nào để mô phỏng một yêu cầu AJAX với ứng dụng thử nghiệm Flask?

# main.py 
from flask import Flask, request 

app = flask.Flask(__name__) 

@app.route('/') 
def index(): 
    s = 'Hello world!', 'AJAX Request: {0}'.format(request.is_xhr) 
    print s 
    return s 

if __name__ == '__main__': 
    app.run() 

Sau đó, đây là kịch bản thử nghiệm của tôi:

# test_script.py 
import main 
import unittest 

class Case(unittest.TestCase): 
    def test_index(): 
     tester = app.test_client() 
     rv = tester.get('/') 
     assert 'Hello world!' in rv.data 

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

Trong đầu ra kiểm tra, tôi sẽ nhận được:

Hello world! AJAX Request: False 

Câu hỏi

Làm cách nào để thử nghiệm ứng dụng của tôi với các yêu cầu AJAX?

Trả lời

20

Hãy thử điều này: -

def test_index(): 
    tester = app.test_client() 
    response = tester.get('/', headers=[('X-Requested-With', 'XMLHttpRequest')]) 
    assert 'Hello world!' in response.data 
+0

Tuyệt vời! :) Tôi chỉ tìm kiếm các tham số mà tôi có thể đặt cho hàm '.get()'. Tôi đã đào sâu vào tài liệu 'werkzeug': S Bạn đã nhận được phần nào của tài liệu này? – Kit

+1

http://flask.pocoo.org/docs/api/ & http://flask.pocoo.org/mailinglist/archive/2011/6/29/werkzeug-client-headers/#d9ba40af5d07413dd75f95f92f515eec – sojin

1
import json 

def test_index(): 
    data = json.dumps({}) 
    client = app.test_client() 
    headers = { 
     'Content-Type': 'application/json', 
    } 
    response = client.post('/', data=data, headers=headers) 
    data = json.loads(response.data) 
    assert data 

'

Các vấn đề liên quan