您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

UnitTesting GAE中的webapp.RequestHandler – Python

5b51 2022/1/14 8:21:20 python 字数 3650 阅读 490 来源 www.jb51.cc/python

我正在努力研究如何使用Google App Engine(Python)为TDD设置我的环境. (我也是Python的新手).我的环境如下:> Google App Engine 1.5.0> IntelliJ 10.2> IntelliJ设置将Python 2.5.4用于此项目我使用IntelliJ和Python插件,因此运行unitte

概述

我正在努力研究如何使用Google App Engine(Python)为TDD设置我的环境. (我也是Python的新手).我的环境如下:

> Google App Engine 1.5.0
> IntelliJ 10.2
> IntelliJ设置将Python 2.5.4用于此项目

我使用IntelliJ和Python插件,因此运行unittests就像点击ctrl-shft-f10一样简单.

我还阅读了有关testbed的文档,并成功测试了数据存储区和内存缓存.但是,我遇到的问题是如何对RequestHandlers进行单元测试.我已经在Google上扫描了很多文章,其中大多数似乎都是将gaetestbed与gae合并为测试平台.

在下面的代码示例中,我想知道如何编写单元测试(可在intellij中运行),该测试测试对’/’的调用返回 – >主页

from google.appengine.ext import webapp
import wsgiref.handlers

class MainHandler(webapp.RequestHandler):

    def get(self):
        self.response.out.write('Home Page')

paths = [
          ('/',MainHandler)
        ]

application = webapp.WSGIApplication(paths,debug=True)

def main():
    wsgiref.handlers.CGIHandler().run(application)

if __name__ == '__main__':
    main()

根据Nick Johnson在下面的回答,我添加一个名为test的新文件夹,并在该文件夹中添加一个名为unit_test.py的文件.对于该文件,我添加了以下代码(修改自Kris的答案如下):

from StringIO import StringIO
from main import MainHandler
import unittest
from google.appengine.ext import webapp

class MyTestCase(unittest.TestCase):
    def test_get(self):
        request = webapp.Request({
            "wsgi.input": StringIO(),"CONTENT_LENGTH": 0,"METHOD": "GET","PATH_INFO": "/",})
        response = webapp.Response()
        handler = MainHandler()
        handler.initialize(request,response)
        handler.get()
        self.assertEqual(response.out.getvalue(),"Home Page")

它现在有效!

request = webapp.Request({
    "wsgi.input": StringIO.StringIO(),})
response = webapp.Response()
handler = MainHandler()
handler.initialize(request,response)
handler.get()
self.assertEqual(response.out.getvalue(),"Home Page")

总结

以上是编程之家为你收集整理的UnitTesting GAE中的webapp.RequestHandler – Python全部内容,希望文章能够帮你解决UnitTesting GAE中的webapp.RequestHandler – Python所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶