如何使用Flask测试客户端模拟AJAX请求?

Kit*_*Kit 13 python ajax unit-testing flask

测试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()
Run Code Online (Sandbox Code Playgroud)

那么这是我的测试脚本:

# 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()
Run Code Online (Sandbox Code Playgroud)

在测试输出中,我会得到:

Hello world! AJAX Request: False
Run Code Online (Sandbox Code Playgroud)

如何使用AJAX请求测试我的应用程序?

soj*_*jin 21

试试这个:-

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