gpt4 book ai didi

php - Laravel 测试 phpunit 按 NotFoundHttpException

转载 作者:行者123 更新时间:2023-11-28 20:52:19 25 4
gpt4 key购买 nike

我正在尝试为使用 Laravel 5.1.40 (LTS)、php 5.6.28 和 phpunit 4.8.27 的项目设置 phpunit 测试。如果这个问题之前已经解决了,我很抱歉,但我找不到任何东西。

public function testAdminLogin()
{
$this->visit('/auth/login')
->type('email@address.com', '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> ,但这只是临时修复, future 的情况可能不允许更改标签。

下面是带有 <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>

最佳答案

您说您手动定义身份验证路由。在这种情况下,您应该有用于发送登录表单的 POST 路由:

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

它在 a href 中工作,因为它发送您有路由的 GET 请求。表单默认发送POST请求。

关于php - Laravel 测试 phpunit 按 NotFoundHttpException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41543488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com