2017-01-09 165 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'); 
} 

似乎有與press('STRING')<button><input>問題提交按鈕。以下是我收到的錯誤消息。

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 

然而,當我在<button>標籤更改爲<a>標籤,添加一個ID給它,並更換press(STRING)功能與click(ID)功能,測試通過。我可以將<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

你說你手動定義auth路由。在這種情況下,你應該有POST路線發送登錄表單:

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

它工作在a href因爲它發送GET您擁有路由請求。表單默認發送POST請求。

+0

這是在路由文件中定義的。我懷疑有些東西會出現陰影,包括重定向或者新聞功能的錯誤。因爲點擊函數通過了我在問題中寫的測試 –