【发布时间】:2018-01-23 17:14:23
【问题描述】:
如何测试我是否收到此消息:
public function doSomething()
{
if($ok){
return view('message-page')
->with('title','The message?')
}
}
我可以断言什么来检查传递给视图的消息?
更新:
Laravel 5.5
我认为这很棘手,因为我没有进行 HTTP 调用,它会返回响应。我只是在做一个函数调用 ($foo->doSomething();),所以我没有得到响应。
我无法执行 GET,因为我需要传入一个模拟对象。到目前为止,这是我的测试:
public function do_the_test()
{
//Arrange
$mockObject = Mockery::mock('App\MockObject');
$authCode = 123456;
$mockObject->shouldReceive('doSomething')->once()->with($authCode)->andReturn([
'code' => '123456',
'name' => 'joe',
'username' => 'smith',
'email' => 'joe@yahoo.co.uk',
'domain' => 'yahoo.co.uk'
]);
//Act
$object = new Foo($mockObject);
$object->doSomething();
//Assert
??
//check that view is returned with message text
}
进展:
我通过设置会话变量(而不是通过视图传递消息)然后使用assertEquals(); 进行检查来解决这个问题
如果能找到更好的方法就好了。
【问题讨论】:
标签: php laravel testing phpunit