在使用phpunit测试Laravel应用程序时,如何确保例如测试我的api路由/test/1
时使用我的测试数据库呢?
我已经建立了一个测试连接并更改了我的phpunit.xml文件。我将DB_CONNECTION
更改为我所建立的测试连接。
<env name="DB_CONNECTION" value="mysql_testing"/>
但是当我发出一个POST请求时,我会从开发数据库中接收到数据吗?
在使用phpunit测试Laravel应用程序时,如何确保例如测试我的api路由/test/1
时使用我的测试数据库呢?
我已经建立了一个测试连接并更改了我的phpunit.xml文件。我将DB_CONNECTION
更改为我所建立的测试连接。
<env name="DB_CONNECTION" value="mysql_testing"/>
但是当我发出一个POST请求时,我会从开发数据库中接收到数据吗?
DB_CONNECTION
:
dd(env('DB_CONNECTION'));
如果PHPUnit.xml正确设置,你应该在测试输出中得到mysql_testing
。Config/database.php
文件中,mysql_testing
的数据库值是什么?应该像这样:'mysql_testing' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('TEST_DB_DATABASE', 'db_testing'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
并且数据库 db_testing
必须存在。