2017-01-09 9 views
1

私は、Laravel 5.1.40(LTS)、php 5.6.28、およびphpunit 4.8.27のプロジェクトでphpunitテストを設定しようとしています。以前にこの問題が解決されてしまったのは残念ですが、何も見つかりませんでした。LaravelテストphpunitプレスNotFoundHttpException

public function testAdminLogin() 
{ 
    $this->visit('/auth/login') 
     ->type('[email protected]', 'email') 
     ->type('1234567890', 'password') 
     ->press('Login'); 
} 

ボタンを提出するよう<button><input>の両方でpress('STRING')に問題があるように思われます。以下は私が受け取るエラーメッセージです。

1) ExampleTest::testAdminLogin 
A request to [http://localhost/auth/login] failed. Received status code [500]. 

C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:165 
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:63 
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:85 
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:684 
C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Testing\InteractsWithPages.php:671 
C:\xampp\htdocs\project\tests\ExampleTest.php:52 
C:\xampp\php\pear\PHPUnit\TextUI\Command.php:176 
C:\xampp\php\pear\PHPUnit\TextUI\Command.php:129 

Iは、<a>タグに<button>タグを変更し、それにIDを追加し、click(ID)機能をpress(STRING)機能を置き換える場合しかし、テストが通過します。 <button><a>に変更できますが、これは一時的な修正に過ぎず、今後のケースではタグの変更が許可されない可能性があります。

以下は<button>タグのHTMLフォームです。

<form action="/auth/login" method="POST" class="form-horizontal"> 
    <div class="form-group"> 
     <label for="email" class="col-sm-4 control-label">E-Mail</label> 
     <div class="col-sm-6"> 
      <input type="email" name="email" class="form-control" value="{{ old('email') }}" autocomplete="off"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <label for="password" class="col-sm-4 control-label">Password</label> 
     <div class="col-sm-6"> 
      <input type="password" name="password" class="form-control" autocomplete="off"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="col-sm-offset-4 col-sm-6"> 
      <button type="submit" class="btn btn-default btn-login">Login</button> 
     </div> 
    </div> 
</form> 
+0

あなたは 'Auth :: routes()'を使用していますか、ログイン/登録経路を手動で定義していますか? –

+0

私はlaravelの5.1バージョンを使用しています。手動で定義されています。 –

答えて

0

あなたは手動でルートを定義すると言いました。この場合、あなたは、ログインフォームを送信するためのPOSTルートを持っている必要があります。

Route::post('auth/login', .... 

それはあなたがルートを持っているため、要求をGET送るので、それがa hrefで動作します。 FormはデフォルトでPOST要求を送信します。

+0

これはroutesファイルで定義されています。私はリダイレクトやプレス機能の不具合で何かが起きていると疑っています。私が質問に書いたように、クリック機能はテストに合格しているので –

関連する問題