मैं Google App Engine - Python के साथ टीडीडी के लिए अपना पर्यावरण कैसे सेट अप करने के लिए संघर्ष कर रहा हूं। (मैं पाइथन के लिए भी बहुत नया हूं)। मेरे वातावरण इस प्रकार है:यूनिट टेस्ट वेबपैप। जीईई में रिवेस्ट हैंडलर - पायथन
- Google अनुप्रयोग इंजन 1.5.0
- इंटेलीजे 10.2
- इंटेलीजे सेटअप इस परियोजना
मैं अजगर के साथ इंटेलीजे उपयोग कर रहा हूँ के लिए अजगर 2.5.4 उपयोग करने के लिए प्लगइन, इसलिए unittests चलाना ctrl-shft-f10 मारने के रूप में सरल है।
मैंने टेस्टबेड पर प्रलेखन भी पढ़ा है और सफलतापूर्वक डेटास्टोर और memcache का परीक्षण किया है। हालांकि, जहां मैं अटक गया हूं, मैं अपने अनुरोध हैंडलर को कैसे बेकार कर सकता हूं। मैंने Google पर बहुत से लेख स्कैन किए हैं और उनमें से अधिकतर टेस्टबेड के रूप में gae में gaetestbed के विलय से पहले विलय कर रहे हैं।
निम्न कोड नमूने में, मुझे पता है कि कैसे एक इकाई परीक्षण (जो IntelliJ में runnable है), जो परीक्षण लिखने के लिए चाहते हैं कि '/' रिटर्न के लिए एक कॉल -> मुख पृष्ठ
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()
से निक जॉनसन का जवाब नीचे, मैंने परीक्षण नामक एक नया फ़ोल्डर जोड़ा और उस फ़ोल्डर में फ़ाइल को जोड़ा जो unit_test.py कहा जाता है। उस फ़ाइल में मैंने निम्नलिखित कोड जोड़ा (नीचे क्रिस का जवाब से संशोधित):
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(),
"CONTENT_LENGTH": 0,
"METHOD": "GET",
})
request.path = '/'
response = webapp.Response()
handler = MainHandler()
handler.initialize(request, response)
handler.get()
self.assertEqual(response.body, "Home Page")
मैं भी मेरी पर्यावरण के बारे में जानकारी नहीं जोड़ी के रूप में कोड नमूने में MainHandler ले जाया गया तो रास्तों यह – Erds
कोड मैं निक जॉनसन जवाब – Erds