用jwt测试laravel api
我正在尝试编写一些测试,第一个测试它的登录路径,我使用用jwt测试laravel api,laravel,phpunit,laravel-6,Laravel,Phpunit,Laravel 6,我正在尝试编写一些测试,第一个测试它的登录路径,我使用jwt和mongodb,我设置.env.testing与.env相同 DB_CONNECTION=mongodb DB_HOST=127.0.0.1 DB_PORT=27017 DB_DATABASE=mydb DB_USERNAME=myuser DB_PASSWORD=mypass 这是phpunit.xml <php> <server name="APP_ENV" value=&
jwt
和mongodb
,我设置.env.testing
与.env
相同
DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=27017
DB_DATABASE=mydb
DB_USERNAME=myuser
DB_PASSWORD=mypass
这是phpunit.xml
<php>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="DB_CONNECTION" value="sqlite"/>
<server name="DB_DATABASE" value=":memory:"/>
<server name="MAIL_DRIVER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
</php>
不确定问题出在哪里您收到了500个HTTP代码,因此需要检查日志文件以解决问题。调试测试中500个错误的常用方法是在Exceptions\Handler.php render()函数中添加($exception)
<?php
namespace Tests\Unit;
use Tests\TestCase;
class AuthTest extends TestCase
{
/**
* A basic unit test example.
*
* @return void
*/
public function test_if_login()
{
$response = $this->json('POST', 'http://127.0.0.1:8000/auth', [
'email' => 'usuario1',
'password' => '12345'
]);
$response
->assertStatus(200)
->assertJsonStructure([
'data'=>[
'token'
]
]);
}
}
There was 1 failure:
1) Tests\Unit\AuthTest::test_if_login
Expected status code 200 but received 500.
Failed asserting that false is true.