在我的测试中不能使用assertViewHas方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在我的测试中不能使用assertViewHas方法相关的知识,希望对你有一定的参考价值。
我正在学习Laravel测试,我希望使用Laravel Framework Assertions。
public function __construct()
{
$this->mock = Mockery::mock("Eloquent", "Post");
}
public function testIndex()
{
$this->mock
->shouldReceive('all')
->once()
->andReturn('foo');
$this->app->instance('Post', $this->mock);
$this->call('GET', 'posts');
$this->assertViewHas('posts'); // This method seem can't be find
}
似乎assertViewHas
方法不存在,因为我的IDE无法自动完成该方法它无法找到它,但是当我在Laravel 5.5 API中搜索时,我在assertViewHas类中的TestResponse
类中的Illuminate/Foundation/Testing
方法中找到该方法。我怎么解决这个问题。
另一个问题是,在这个测试中,我使用嘲弄来模拟我的Post
模型,但是当我在我的终端上运行vendorinphpunit
in时出现了一些错误。
我没有找到array_merge()
在我的测试中使用的位置
答案
代替:
$this->call('GET', 'posts');
$this->assertViewHas('posts'); // This method seem can't be find
你应该使用
$response = $this->call('GET', 'posts');
$response->assertViewHas('posts');
Laravel 5.4中更改了运行测试的默认方式。有关详细信息,请参阅Upgrade guide - Testing section。
以上是关于在我的测试中不能使用assertViewHas方法的主要内容,如果未能解决你的问题,请参考以下文章
不能在我的mocha测试中使用需求通过gulp与karma runner
如何在 Laravel PHPUnit 测试中获取响应变量?