mik*_*yuk 6 php unit-testing laravel-5
我的模型方法依赖于config()全局,这里;
public function getGroup()
{
if(config('app.pages.'.$this->group.'.0')) {
return $this->group;
}
return "city";
}
Run Code Online (Sandbox Code Playgroud)
我试图在我的单元测试类中测试这个方法,
public function testGetGroupReturnsCityAsDefault()
{
$response = new Response();
$response->group = "town";
$test = $response->getGroup();
dd($test);
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是;
Error: Call to a member function make() on null
/home/vagrant/sites/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:62
/home/vagrant/sites/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:163
Run Code Online (Sandbox Code Playgroud)
我知道这与config()全局有关.但不确定如何在我的测试中设置它.我试过了
public function setUp()
{
config(['app.pages' => [
'city' => [........
Run Code Online (Sandbox Code Playgroud)
但得到了同样的错误.我怎么设置它?
我不确定你是否已经解决了这个问题,但我遇到了类似的问题.
为了让它发挥作用,我必须做两件事:
1)确保您正在调用setUp父方法,如下所示:
public function setUp()
{
parent::setUp();
// other stuff
}
Run Code Online (Sandbox Code Playgroud)
2)确保你的测试类正在扩展Laravel TestCase而不是PHPUnit_Framework_TestCase
简要说明:基本上你得到的错误是因为ContainerInstanceLaravel是空的,因为你正在浏览PHPUnit,因此它从未创建过.如果执行上述步骤,您将确保Laravel首先实例化容器实例.
PS如果您最终要最终引用env变量,那么您应该查看phpunit.xml环境变量部分.
| 归档时间: |
|
| 查看次数: |
3139 次 |
| 最近记录: |