2016-03-04 54 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性狀組合可以是一個非常有用的工具運行您的集成測試,並且您可以看到播種機內部的任何值都可以通過運行方法返回。