Tôi muốn tham số yêu cầu giả mạo để kiểm tra đơn vị. Làm thế nào tôi có thể đạt được điều này trong Flask?Làm thế nào tôi có thể yêu cầu giả.POST và GET params để kiểm tra đơn vị trong Flask?
Trả lời
Bạn đã đọc Flask docs about testing chưa?
Bạn có thể sử dụng như sau:
self.app.post('/path-to-request', data=dict(var1='data1', var2='data2', ...))
self.app.get('/path-to-request', query_string=dict(arg1='data1', arg2='data2', ...))
phiên bản phát triển hiện tại của Flask cũng bao gồm hỗ trợ cho testing JSON APIs:
from flask import request, jsonify
@app.route('/jsonapi')
def auth():
json_data = request.get_json()
attribute = json_data['attr']
return jsonify(resp=generate_response(attribute))
with app.test_client() as c:
rv = c.post('/jsonapi', json={
'attr': 'value', 'other': 'data'
})
json_data = rv.get_json()
assert generate_response(email, json_data['resp'])
POST:
self.app.post('/endpoint', data=params)
GET:
self.app.get('/endpoint', query_string=params)
self._add_file_from_data (khóa, giá trị) Tệp "/usr/local/lib/python3.5/dist-packages/werkzeug/test.py", dòng 355, trong _add_file_from_data self.files.add_file (khóa, ** giá trị) TypeError: add_file() nhận đối số từ khóa bất ngờ 'birthDate' – Crusader
Tôi vẫn gặp vấn đề với điều này khi kiểm tra dữ liệu biểu mẫu bài đăng để đăng nhập vào tài khoản này có hiệu quả đối với tôi.
def login(self, username, password):
return self.app.post('/', data='Client_id=' + username +'&Password=' + password,
follow_redirects=True,content_type='application/x-www-form-urlencoded')
Tôi thấy đây là cách này.
Chrome: chế độ nhà phát triển -> Đốc -> HTML doc đã được yêu cầu - dữ liệu> Form - -> Headers Tab> xem mã nguồn
Nếu bạn thích sử dụng test_request_context
:
import unittest from myapp import extract_query_params testapp = flask.Flask(__name__) class TestFoo(unittest.TestCase): def test_happy(self): with testapp.test_request_context('?limit=1&offset=2'): limit, offset = extract_query_params(['limit', 'offset']) self.assertEquals(limit, 1) self.assertEquals(offset, 2)
'với testapp.test_request_context (tiêu đề = h):' có thể được sử dụng để chuyển ** tiêu đề ** mà không đề cập đến bất kỳ ** url ** nào, điều này sẽ thử một yêu cầu với _default-url_ – Abhijeet
- 1. Kiểm tra đơn vị các yêu cầu HTTP trong C#
- 2. django - làm thế nào để đơn vị kiểm tra yêu cầu bài đăng bằng request.FILES
- 3. Kiểm tra đơn vị trong asp.net MVC, làm thế nào để tôi thử một yêu cầu trang?
- 4. kiểm tra đơn vị python cách làm thế nào để
- 5. Kiểm tra xem một yêu cầu là GET hoặc POST
- 6. Tôi có thể kiểm tra đơn vị Mã khung thực thể đầu tiên như thế nào?
- 7. Kiểm tra đơn vị - Làm thế nào để tiếp tục?
- 8. Tôi đã tiêm HttpServletRequest vào một bean. Làm thế nào để đơn vị kiểm tra nó?
- 9. Hadoop: Làm thế nào để kiểm tra đơn vị FileSystem
- 10. Làm thế nào để bạn kiểm tra đơn vị?
- 11. Làm thế nào để kiểm tra đơn vị IDisposable?
- 12. Kiểm tra đơn vị DAO, tôi có làm đúng không?
- 13. Có thể kiểm tra đơn vị BundleConfig trong MVC4 không?
- 14. Tôi có thể kiểm tra mã đơn vị chứa Task.Delay như thế nào?
- 15. Làm cách nào để thực hiện kiểm tra đơn vị để kiểm tra phương pháp kiểm tra tiêu đề yêu cầu?
- 16. Làm thế nào để kiểm tra đơn vị API của bạn?
- 17. Tôi có thể kiểm tra đơn vị MVC UserViewControl như thế nào?
- 18. Làm thế nào để bạn kiểm tra hàm băm params trong bài kiểm tra Rails?
- 19. Tôi có thể dễ dàng kiểm tra đơn vị bằng CodeIgniter như thế nào?
- 20. ajax jquery đơn giản get yêu cầu
- 21. Làm thế nào để thử một yêu cầu khi đơn vị thử nghiệm một dịch vụ trong grails
- 22. Rails Kiểm tra API JSON Yêu cầu POST với PARAMS trong JSON
- 23. Đơn vị kiểm tra phiên Flask - không thể tạo lại lỗi với session_transaction
- 24. Làm thế nào tôi có thể thử một yêu cầu web bên ngoài trong PHPUnit?
- 25. Làm thế nào để viết bài kiểm tra đơn vị kiểm tra bất biến đồng thời
- 26. Yêu cầu mô hình và yêu cầu GET?
- 27. Làm thế nào tôi có thể bao gồm các bài kiểm tra đơn vị trong lắp ráp maven?
- 28. Làm thế nào để đơn vị chính xác kiểm tra DAL của tôi?
- 29. Symfony2 lấy cấu hình params trong bài kiểm tra đơn vị
- 30. Có thể thực hiện yêu cầu POST trong Flask không?
Vì vậy, .get chỉ hy vọng bạn thêm các tham số ở cuối truy vấn, như vậy - '? Param1 = value & param2 = value2' - hoặc nó có thể nhận được một dict không? – sssilver
@sssilver Bạn đã thử những gì? :) – plaes
Tôi đã thử cả hai, chỉ có tùy chọn đầu tiên hoạt động. Tại sao bạn hỏi? – sssilver