我定义了一个作用域,它通过publishhed_at时间戳对实体进行排序。我想写一个测试来确保正确的排序。
然而,我怎么也找不到一个"好"的方法来做到这一点。
$novels = Novel::published()->get();
这是我最好的猜测
for($i = 1; $i < count($novels); $i++)
{
$this->assertGreaterThanOrEqual(
$novels->toArray()[$i - 1]['published_at'],
$novels->toArray()[$i]['published_at']
);
}
有谁能提供更好的方法吗?
如果你在测试中做的事情有效,那就没有什么问题了。
也就是说,如果你想缩短你的测试,你可以这样做:
$this->assertEquals(
$novels->pluck('id'),
$novels->sortBy('published_at')->pluck('id'),
'The Novels are not being ordered by published_at date'
);