当我尝试模拟它时重新声明方法
redeclaring method when i try to mock it
我有一个绑定在服务提供商
中的class
这个 class 使用我的外观扩展了 laravel 的外观,但是
当我尝试模拟 class 它说的是
Cannot redeclare Mockery_1_App_Classes_Dashboard_class::shouldReceive()
.
我的测试方法:
public function test_method()
{
class::shouldReceive('method')->once()->andReturns(true);
$response = $this->another_class->method();
dd($response);
}
我的门面:
<?php
namespace App\Facades\Dashboard;
use Illuminate\Support\Facades\Facade;
class class extends Facade
{
protected static function getFacadeAccessor()
{
return 'class';
}
}
应用服务提供商:
<?php
namespace App\Providers;
use Illuminate\Database\Eloquent\Relations\Relation;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
use App\Classes\Dashboard\class;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->bind('class', function($app) {
return new class;
});
}
public function boot()
{
Schema::defaultStringLength(191);
}
}
我在网上搜索过,很遗憾没有找到任何东西。
终于找到问题了
我不小心在我的 class 继承中扩展了 laravel 的外观。
我有一个绑定在服务提供商
中的class
这个 class 使用我的外观扩展了 laravel 的外观,但是
当我尝试模拟 class 它说的是
Cannot redeclare Mockery_1_App_Classes_Dashboard_class::shouldReceive()
.
我的测试方法:
public function test_method()
{
class::shouldReceive('method')->once()->andReturns(true);
$response = $this->another_class->method();
dd($response);
}
我的门面:
<?php
namespace App\Facades\Dashboard;
use Illuminate\Support\Facades\Facade;
class class extends Facade
{
protected static function getFacadeAccessor()
{
return 'class';
}
}
应用服务提供商:
<?php
namespace App\Providers;
use Illuminate\Database\Eloquent\Relations\Relation;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\ServiceProvider;
use App\Classes\Dashboard\class;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
$this->app->bind('class', function($app) {
return new class;
});
}
public function boot()
{
Schema::defaultStringLength(191);
}
}
我在网上搜索过,很遗憾没有找到任何东西。
终于找到问题了
我不小心在我的 class 继承中扩展了 laravel 的外观。