如何在Google App Engine中对来自webapp WSGI应用程序的响应进行单元测试?

时间:2008-09-20 08:56:59

标签: python unit-testing google-app-engine

我想从Google App Engine webapp.WSGIApplication单元测试回复,例如请求网址'/'并使用GAEUnit测试回复状态代码为200。我怎样才能做到这一点?

我想使用webApp框架和GAEUnit,它在App Engine沙箱中运行(遗憾的是WebTest在沙箱中不起作用。)

2 个答案:

答案 0 :(得分:11)

我在GAEUnit项目中添加了sample application,该项目演示了如何使用GAEUnit编写和执行Web测试。该示例包含“webtest”模块的略微修改版本(“导入web浏览器”已按照David Coffin的建议进行了注释。)

以下是示例应用程序'test'目录中的'web_tests.py'文件:

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)

答案 1 :(得分:1)

实际上,只要你注释掉了

,WebTest就可以在沙盒中工作
import webbrowser

在webtest / __ init__.py