2
user.php的 - 相當香草的hasMany關係:的PHPUnit + Laravel 5.2 +屬性不返回正確
public function transactions()
{
return $this->hasMany('App\Transaction');
}
UserTest.php:
public function testTransactionsAttribute()
{
$user = Auth::user();
// Verify logged in user is expected user.
$this->assertTrue($user->username == 'something');
// Pay something.
$transaction = $user->payMembershipFee();
// Verify transaction is in database
$this->seeInDatabase('transactions', ['amount' => 50, 'user_id' => $user->id]);
// Verify transaction belongsTo relationship
$this->assertTrue($transaction->user->username == 'something');
// Verify user hasMany relationship - fails
$this->assertTrue($user->transactions->count() > 0, 'The user should have at least one transaction associated.');
}
這裏就是它有趣的(我並沒有修改數據庫表 - 剛剛離開的PHPUnit並切換到叮叮):
$ php artisan tinker
搶用戶(驗證爲創建相同的用戶從測試):
$user = App\User::first()
複製/粘貼斷言:
$user->transactions->count()
=> 1
此外,當我手動經過的步驟當地 - 它的工作原理。所以,看起來Laravel 5.2是按預期行事的。但是,PHPUnit不是。
我想知道是否有可能我錯過Laravel 5.2和PHPUnit一起工作的方式?
如果在最後一個斷言之前放置** $ user = $ user-> fresh(); **,會發生什麼?我懷疑該事務可能不會同步,除非獲取新實例。 – macghriogair
謝謝@macghriogair讓我走下正確的道路。多謝。如果你想獲得信用,我會非常樂意把它給你 - 只要發表一個類似於我寫的答案 - 擴大你的評論。再次感謝 - 救生員。 –
沒關係,快樂我可以幫助:) – macghriogair