在Laravel中编写测试以确定ORM项目的顺序是否正确

时间:2014-04-21 21:32:02

标签: unit-testing laravel laravel-4 tdd eloquent

我写了一个测试来从我的数据库中提取10篇文章。然后我编写了代码以使测试通过并且它可以工作。但是,现在我想编写一个测试,以确保我从数据库中提取的10篇文章基于descending ordercreated_at中。我根本不确定如何解决这个问题。

测试方法:

public function testPullTenArticles()
{
    for ($i = 0; $i < 20; $i++)
    {
        $tempArticle = new Article;
        $tempArticle->save();
    }

    $this->assertEquals(10, count($this->article->getArticles(10)));
}

真实方法:

public function getArticles($count)
{
    $articles = Article::take($count)->get();
    return $articles;
}

1 个答案:

答案 0 :(得分:3)

如果您正在使用orderBy子句来检索您的对象,那么您不需要对其进行测试 - 那些编写Laravel&amp;雄辩的代码已经做到了。

您可以按照以下顺序订购:

$articles = Article::orderBy("created_at", "desc")->take($count)->get();