Я только начал с издевательства. Я пытаюсь высмеять свое мнение в Laravel, но не могу понять это правильно. Это то, что у меня есть ..
Действие контроллера:
public function signup()
{
return View::make(
'account.signup',
array(
'pageHeading' => 'Signup',
'profileTypes' => $this->profileTypeRepository->all()
)
);
}
Тестовое задание:
public function testSignupView()
{
$this->profileTypeRepositoryInterfaceMock
->shouldReceive('all')
->once()
->andReturn($this->mock('Illuminate\Database\Eloquent\Collection'));
View::shouldReceive('make')
->once()
->with('account.signup', array(
'pageHeading' => \Mockery::type('string'),
'profileTypes' => $this->profileTypeRepositoryInterfaceMock
));
}
Однако это не работает:
1) AccountControllerTest::testSignupView
Mockery\Exception\NoMatchingExpectationException: No matching handler found for Mockerypublic function signup()
{
return View::make(
'account.signup'
)->with('pageHeading', 'Signup')
->with('profileTypes', $this->profileTypeRepository->all());
}
Illuminate_View_Factory::make("account.signup", array('pageHeading'=>'Signup','profileTypes'=>'object(Mockerywith()
Illuminate_Database_Eloquent_Collection)',)). Either the method was unexpected or its arguments matched no expected argument list for this method
Если я назначу данные представлению с помощью метода with()
, я могу протестировать его следующим образом:
Действие контроллера:
public function signup()
{
return View::make(
'account.signup'
)->with('pageHeading', 'Signup')
->with('profileTypes', $this->profileTypeRepository->all());
}
Тестовое задание:
public function testSignupView()
{
View::shouldReceive('make')
->once()
->with('account.signup')
->andReturn(\Mockery::self())
->shouldReceive('with')
->with('pageHeading', \Mockery::type('string'))
->andReturn(\Mockery::self())
->shouldReceive('with')
->with('profileTypes', \Mockery::any());
$this->get('signup');
}
Однако я не хочу этого делать; Я хочу передать полный массив данных в качестве второго аргумента.
Как я могу проверить представление, передавая данные в качестве второго аргумента фасада представления?