我正在使用Laravel 4.2,尝试使用phpunit来测试我的代码,而不是手动测试。我已经阅读了Jeffrey Way的书《Laravel Testing Decoded》,但是我仍然觉得我的第一个测试很棘手。我想测试的类如下所示。我遇到的问题是-我应该测试什么?
我认为我不应该测试数据库或Model $advert,因为它们应该有自己的测试。在这种情况下,我认为我需要模拟$advert或为其创建一个工厂,但我不知道哪一个。
非常感谢您的任何指针。
EloquentListing.php
我认为我不应该测试数据库或Model $advert,因为它们应该有自己的测试。在这种情况下,我认为我需要模拟$advert或为其创建一个工厂,但我不知道哪一个。
非常感谢您的任何指针。
EloquentListing.php
<?php
namespace PlaneSaleing\Repo\Listing;
use Illuminate\Database\Eloquent\Model;
class EloquentListing implements ListingInterface {
protected $advert;
public function __construct(Model $advert)
{
$this->advert = $advert;
}
/**
* Get paginated listings
*
* @param int Current page
* @param int Number of listings per page
* @return StdClass object with $items and $totalItems for pagination
*/
public function byPage($page=1, $limit=10)
{
$result = new \StdClass;
$result->page = $page;
$result->limit = $limit;
$result->totalItems = 0;
$result->items = array();
$listings = $this->advert
->orderBy('created_at')
->skip( $limit * ($page-1) )
->take($limit)
->get();
// Create object to return data useful for pagination
$result->items = $listings->all();
$result->totalItems = $this->totalArticles;
return data;
}
/**
* Get total listing count
*
*
*/
protected function totalArticles()
{
return $this->advert->count();
}
}