【发布时间】:2014-10-23 12:25:55
【问题描述】:
我有以下控制器:
class ProjectController
{
public function __Construct( IProjectRepository $projectRepo )
{
$this->projectRepository = $projectRepo;
}
public function ListWithPagination()
{
$projects = $this->projectRepository->Paginate( 2 );
return $projects;
}
}
以及以下模型/存储库:
class EloquentProjectRepository implements IProjectRepository
{
public function Paginate( $amount )
{
return Project::paginate( $amount );
}
}
1.如何模拟数据以放入此测试?:
我不想在我的数据库中使用实际的项目,因为可能没有足够的项目来测试......而且我可能想确保第二页的第一个项目确实是我期望的项目。
/**
* Check that pagination amount returned is as expected.
*/
public function testCheckPaginationAmount()
{
// Setup
// Mock 3 Project items... Make sure 2 come back from page 1.
// Act
$response = $this->action('GET', 'ProjectController@ShowList');
// Assert
$this->assertGreaterThan( 2, count( $response->getContent()[ 0 ] ) );
}
2。我如何模拟已传递给控制器中 Paginate 函数的 $amount
感谢你们的帮助!
【问题讨论】:
标签: php unit-testing laravel