2016-03-04 63 views
0

为了能够运行与数据库测试的集成测试,我写了一个播种机,种子消息表与假的消息,为一个假的,新创建的用户。然后需要该用户的ID来检索消息,因此在播种机类别中我简单地打印其ID。流明5.1播种与测试输出

然后在测试我所说的以下内容:

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

这应该让我找回的输出与以下内容:

$output->fetch() 

但是上面总是返回null。

有什么我做错了吗?或者也许有更好的方法来调用播种机?我是否应该将整个工厂包括到我的测试课程中,并在必要时进行调用?公平地看起来很麻烦。

+0

等你从另一个播种机内做手艺电话吗? – Pitchinnate

+0

不,这是来自phpunit测试中的一个类,它扩展了TestCase – peterstarling

回答

0

所以,很显然有一个简单的解决方法,而不是运行人员播种命令时,播种机类可以测试内部使用如下:

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

上面与DatabaseTransactions性状组合可以是一个非常有用的工具运行您的集成测试,并且您可以看到播种机内部的任何值都可以通过运行方法返回。