まず第一に、私の英語でごめんなさい!
私はコードセプションで機能テストを書いています.ZF2モジュールを使用していますが、これまでのところすべてがうまく機能しています. フォームを送信しようとすると問題が発生します。テストはパラメーターを正しく送信しているように見えますが、$_POST は常に空です。
私の ExempleCept.php
$I = new TestGuy($scenario);
$I->wantTo('perform actions and see result');
$I->amOnPage('/user/login');
$I->submitForm('#login', ['email' => 'teste123@teste.com.br', 'password' => '789456']);
$I->seeCurrentUrlEquals('/user/login');
vendor/bin/codeception run --debug
出力
* I submit form "#login",{"email":"teste123@teste.com.br","password":"789456"}
array(0) {
}
=> [Response] 200
=> [Page] http://localhost/user/login
* I see current url equals "/user/login"
=> [Uri] /user/login
=> [Method] post
=> [Parameters] {"email":"teste123@teste.com.br","password":"789456"}
=> [Response] 200
=> [Page] http://localhost/user/login
ユーザーコントローラー::loginAction()
public function loginAction() {
$form = new LoginForm ( 'login' );
$request = $this->getRequest ();
if ($request->isPost ()) {
var_dump($_POST);
...
私のアクションの var_dump 行は、" * I submit form" の直後に呼び出されるので、POST が来ることに注意してください!
それで、誰が私を助けることができますか?ありがとう!
編集済み
WebGuy API (受け入れ) で同じテストを試しましたが、うまくいきました。しかし、テストは Jenkins で実行する必要があり、WebGuy を実行するには http サーバーが必要です。TestGuy テストが機能する必要があります。