के साथ कैस्पर जेएस प्रतीक्षाफॉर रिसोर्स हम Casper.js के साथ एक कार्यात्मक परीक्षण के साथ एक छोटी सी समस्या हो रही है।एक आरामदायक एपीआई
हम उसी संसाधन को दो बार अनुरोध करते हैं, पहले जीईटी के साथ और फिर POST विधि के साथ। अब दूसरे संसाधन (POST) की प्रतीक्षा करते समय यह पहले संसाधन से मेल खाता है और सीधे "फिर" फ़ंक्शन पर जाता है।
हम "परीक्षण" फ़ंक्शन में HTTP विधि की जांच करने में सक्षम होना चाहते हैं, इस तरह हम संसाधन को सही तरीके से पहचान सकते हैं। अभी के लिए हम स्टेटस कोड (res.status) का उपयोग करते हैं, लेकिन यह हमारी समस्या को पूरी तरह से हल नहीं करता है, हमें वास्तव में http विधि की आवश्यकता है।
// create new email
this.click(xPath('//div[@id="tab-content"]//a[@class="button create"]'));
// GET
this.waitForResource('/some/resource',
function then() {
this.test.assertExists(xPath('//form[@id="email_edit_form"]'), 'Email edit form is there');
this.fill('form#email_edit_form', {
'email_entity[email]': '[email protected]',
'email_entity[isMain]': 1
}, true);
// POST
this.waitForResource(
function test(res) {
return res.url.search('/some/resource') !== -1 && res.status === 201;
},
function then() {
this.test.assert(true, 'Email creation worked.');
},
function timeout() {
this.test.fail('Email creation did not work.');
}
);
},
function timeout() {
this.test.fail('Email adress creation form has not been loaded');
});
या शायद इस परिदृश्य का परीक्षण करने का एक बेहतर तरीका है? यद्यपि यह एक कार्यात्मक परीक्षण है, इसलिए हमें उन सभी चरणों को एक परीक्षण में रखने की आवश्यकता है।