casper.jsの機能テストには少し問題があります。安心なAPIを使用したCasper JS waitForResource
私たちは同じリソースをGETで2回、次にPOSTメソッドで2回要求します。 2番目のリソース(POST)を待つとき、最初のリソースと一致し、直接「then」機能に進みます。
私たちはリソースを適切に識別できるように、「テスト」機能で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');
});
このシナリオをテストするには、より良い方法がありますか?これは機能テストなので、すべてのステップを1つのテストで保つ必要があります。