2008-09-20 12 views
11

Tôi muốn phản hồi kiểm tra đơn vị từ ứng dụng webapp.WSGIApplication của Google App Engine, ví dụ: yêu cầu url '/' và kiểm tra mã trạng thái phản hồi là 200, sử dụng GAEUnit. Tôi có thể làm cái này như thế nào?Làm cách nào tôi có thể đơn vị phản hồi thử nghiệm từ ứng dụng webapp WSGI trong Google App Engine?

Tôi muốn sử dụng khung công cụ webapp và GAEUnit, chạy trong hộp cát App Engine (không may WebTest không hoạt động trong hộp cát).

Trả lời

1

Trên thực tế WebTest không làm việc trong sandbox, miễn là bạn nhận xét ra

import webbrowser 

trong webtest/__ init__.py

+0

Patching 'webtest/__ init __ py' là không còn cần thiết, như WebBrowser chỉ nhập khẩu của các' webtest. app: function showbrowser' nếu nó được gọi. Xem https://github.com/Pylons/webtest/commit/78076424c219935ee556aab84d943d5949530531 và https://github.com/Pylons/webtest/commit/53889b57fe16c57fd7f532953d2e15bfaba7e5b3 –

11

Tôi đã thêm một sample application cho dự án GAEUnit mà chứng minh làm thế nào để viết và thực hiện kiểm tra web bằng GAEUnit. Mẫu bao gồm một phiên bản được sửa đổi đôi chút của mô-đun 'webtest' ('trình duyệt web nhập' được nhận xét, theo khuyến cáo của David Coffin).

Đây là 'web_tests.py' tập tin từ các ứng dụng mẫu 'test' thư mục:.

import unittest 
from webtest import TestApp 
from google.appengine.ext import webapp 
import index 

class IndexTest(unittest.TestCase): 

    def setUp(self): 
    self.application = webapp.WSGIApplication([('/', index.IndexHandler)], debug=True) 

    def test_default_page(self): 
    app = TestApp(self.application) 
    response = app.get('/') 
    self.assertEqual('200 OK', response.status) 
    self.assertTrue('Hello, World!' in response) 

    def test_page_with_param(self): 
    app = TestApp(self.application) 
    response = app.get('/?name=Bob') 
    self.assertEqual('200 OK', response.status) 
    self.assertTrue('Hello, Bob!' in response) 
+0

Vá 'webtest/__ init __. Py' không còn cần thiết, vì trình duyệt web chỉ là được nhập bởi hàm 'webtest.app: showbrowser' nếu nó được gọi. Xem https://github.com/Pylons/webtest/commit/78076424c219935ee556aab84d943d5949530531 và https://github.com/Pylons/webtest/commit/53889b57fe16c57fd7f532953d2e15bfaba7e5b3 –

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