无法在我的测试中使用 assertViewHas 方法
Can't use assertViewHas method in my test
我正在学习 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 我在 Illuminate/Foundation/Testing
命名空间的 TestResponse
class 的 assertViewHas 方法中找到了那个方法。
我怎么解决这个问题。
另一个问题是,在这个测试中我使用模拟来模拟我的 Post
模型,但是当我在我的终端中 运行 vendor\bin\phpunit
时出现一些错误。
我没有找到在我的测试中使用 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。
我正在学习 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 我在 Illuminate/Foundation/Testing
命名空间的 TestResponse
class 的 assertViewHas 方法中找到了那个方法。
我怎么解决这个问题。
另一个问题是,在这个测试中我使用模拟来模拟我的 Post
模型,但是当我在我的终端中 运行 vendor\bin\phpunit
时出现一些错误。
我没有找到在我的测试中使用 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。