3

データを Laravel ページに直接投稿して、不良データの処理をテストするテストを作成したいと考えています。

フォームがオンになっているページから受け入れテストを実行し、呼び出し$I->click('Search');を行うと、ページは期待どおりにデータを処理します。

Codeception Web サイトで Functional Tests の概要を読むと、次のように述べられています。

In simple terms we set $_REQUEST, $_GET and $_POST variables, then we execute your script inside a test, we receive output, and then we test it.

これは理想的に思えます。POST データの配列を設定し、処理ページで直接起動します。しかし、私はそれに関するドキュメントを見つけることができません。私は遊んsendAjaxPostRequestだことがありますが、$_POST に何も渡していません。

このようにページを分離してテストする方法はありますか?

4

2 に答える 2

4

解決策はCodeception REST モジュールにあることがわかりました。

これをfunctional.suite.ymlファイルに追加すると、次のように記述できます。

$I = new TestGuy($scenario);
$I->wantTo('check a page is resistant to POST injection');
$I->sendPOST(
    'search',
    array(
        'startDate' => '2013-07-03',
        'endDate' => '2013-07-10',
        'exec' => 'some dodgy commands',
    ));
$I->see('Search results');
$I->dontSee('Dodgy command executed');

少し不格好ですが、単一ページのテストが可能です。

于 2013-07-03T08:36:07.117 に答える
-3

マニュアル @ http://codeception.com/docs/04-AcceptanceTestsから

$I->submitForm('#update_form', array('user' => array(
     '名前' => 'マイル',
     'メール' => 'デービス',
     '性別' => 'm'
)));
于 2013-06-27T15:05:32.843 に答える