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

Dav*_*fin 11 python google-app-engine unit-testing

我想从Google App Engine webapp.WSGIApplication单元测试响应,例如请求url'/'并使用GAEUnit测试响应状态代码是200 .我怎样才能做到这一点?

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

Ste*_*eve 11

我在GAEUnit项目中添加了一个示例应用程序,演示了如何使用GAEUnit编写和执行Web测试.该示例包含" webtest "模块的略微修改版本("导入webbrowser"已被注释掉,如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)
Run Code Online (Sandbox Code Playgroud)


Dav*_*fin 2

其实WebTest确实可以在沙箱内工作,只要你注释掉

import webbrowser
Run Code Online (Sandbox Code Playgroud)

在 webtest/__init__.py 中