2012-01-26 17 views
7

में आरएसपीसी और रैक-टेस्ट के साथ हेडर का परीक्षण कैसे करें, इसलिए मेरे पास एक सिनात्रा ऐप है जो किसी अन्य सेवा से HTTP पोस्ट के माध्यम से एक्सएमएल प्राप्त करता है। मैं इसे स्थानीय रूप से परीक्षण करना चाहता हूं। मेरे पास एक परीक्षण एक्सएमएल-फाइल है जिसे मैं एंडपॉइंट पर भेजता हूं। यह ठीक है। मैं भी इस तरह की कुछ हेडर सेट:सिनात्रा

post '/', xml, 'HTTP_X_MY_AWESOME_HEADER' => "It's value" 

जहां xml सामान्य एक्सएमएल कि मेरे समाप्ति बिंदु को भेजा जा रहा है की सटीक प्रतिलिपि है। लेकिन पैरामीटर के रूप में मैं जो हेडर पास करता हूं वह आउटपुट में कभी प्रदर्शित नहीं होता है।

क्या मैं यहां कुछ गलत कर रहा हूं? इसके बारे में यहां बहुत सारी पोस्ट हैं, लेकिन सभी पुरानी हैं।

मैं रुपये 2.8, सिनात्रा 1.3.2, रूबी 1.9.3-पी 0, रैक :: टेस्ट 0.6.1 का उपयोग कर रहा हूं।

अद्यतन 2012-01-28 11:37: स्पष्ट रूप से मैं इस सवाल से पूछ रहा था, जबकि मैं सोच नहीं रहा था। अनुरोध के साथ हेडर भेजना इसका मतलब यह नहीं है कि मैं उन्हें प्रतिक्रिया में वापस प्राप्त करूंगा।

तो सवाल अब है: मैं अनुरोध हेडर को प्रतिक्रिया के साथ वापस भेजने के बिना कैसे परीक्षण करूं?

उत्तर

4

आप का निरीक्षण करने के तो जैसे last_request सक्षम होना चाहिए:

last_request.env["HTTP_X_MY_AWESOME_HEADER"] 

आप ऊपर अपने उदाहरण का परीक्षण होगा RSpec & उपयोग करने के साथ:

last_request.env["HTTP_X_MY_AWESOME_HEADER"].should == "It's value" 

और उम्मीद है कि आप एक हरे रंग का प्रकाश मिल जाएगा:)

अधिक जानकारी यहां: http://www.sinatrarb.com/testing.html#asserting_expectations_about_the_response

एचटीएच

+2

अनुरोध के साथ शीर्षलेख भेजने का मतलब यह नहीं है कि मैं उन शीर्षकों को प्रतिक्रिया में वापस प्राप्त करता हूं। तो 'last_response' में' HTTP_X_MY_AWESOME_HEADER'-header – Ivan

+0

शामिल नहीं है। अद्यतन उत्तर :) – gef