流明5.1播种与测试输出

时间:2016-03-04 09:43:36

标签: unit-testing laravel testing phpunit lumen

为了能够使用数据库测试运行集成测试,我编写了一个播种器,它为一个假的,新创建的用户播放带有假消息的Messages表。然后需要该用户的ID来检索消息,因此在播种者类中我只是打印其ID。

然后在测试中我打电话给以下人员:

$output = new BufferedOutput;
$exitCode = \Artisan::call('db:seed', ['--class' => UserMessagesSeeder'], $output);

这应该让我用以下内容检索输出:

$output->fetch()

但是上面总是返回null。

我做错了吗?或者也许还有一种更好的方式来召唤播种机?我应该简单地将整个工厂包括在我的测试类中并在必要时调用它吗?公平地说,这似乎很麻烦。

1 个答案:

答案 0 :(得分:0)

所以显然有一个简单的解决方法,而不是运行artisan种子命令,Seeder类可以在测试中使用如下:

$seeder = new UserMessagesSeeder;
$user_id = $seeder->run();

以上结合DatabaseTransactions特性可以是一个非常有用的工具来运行您的集成测试,因为您可以看到播种机内部的任何值都可以通过运行方法返回。