使用PHPUnit进行Laravel测试会断言正确的顺序

时间:2016-10-31 14:17:21

标签: php laravel testing phpunit

我已经定义了一个范围,它通过published_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']
    );
}

任何人都可以提供更好的方式吗?

1 个答案:

答案 0 :(得分:2)

如果测试有效,你在测试中所做的事情没有任何问题。

话虽这么说,如果你想缩短你的考试,你可以做类似的事情:

$this->assertEquals($novels->pluck('id'), $novels->sortBy('published_at')->pluck('id'),
        'The Novels are not being ordered by published_at date');

希望这有帮助!