我有模型 Products,它具有受保護的屬性$appends = ['avg_rating']。此平均評分由getAvgRatingAttribute()函式設定。我想為模型產品中的附加屬性撰寫一個單元測驗,有什么想法嗎?
class Product extends Model
{
protected $appends = [
'avg_rating',
];
public function getAvgRatingAttribute()
{
return $this->comments()->avg('rating');
}
}
uj5u.com熱心網友回復:
我想測驗模型是否具有附加屬性并且它回傳正確的平均值。你有什么主意嗎?
//use Tests\TestCase;
public function test_your_test_name(){
$post = Post::create([]);
$post->comments()->saveMany([
new Comment(['rating' => 2]),
new Comment(['rating' => 4]),
new Comment(['rating' => 1]),
]);
$this->assertTrue(isset($post->avg_rating)); //to test if attribute is set
$this->assertEquals( (2 4 1)/3, $post->avg_rating ); //test if avg rating is correct
}
我可能沒有抓住重點,但是,我應該說這些測驗似乎沒有必要。這與測驗 ifgetAvgRatingAttribute設定屬性和 ifavg函式回傳正確的平均值相同,框架已經測驗過了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446178.html
上一篇:如何修復未為視圖定義的路線
