Laravel 5.5。无法实例化具有特定名称的类

时间:2017-10-12 10:35:56

标签: php laravel laravel-5 phpunit laravel-5.5

我有两个班级:\App\Services\WeatherService\App\Services\WeatherService1都是平等的。

在我的\Tests\Unit\Services\WeatherServiceTest我正在尝试创建一个新实例,但我无法实例化\App\Services\WeatherService

//Works perfect
$some = new WeatherService1(new \Forecast\Forecast(config('darksky.key')));

dd($some);

/*
App\Services\WeatherService1 {#2405
  -forecastApi: Forecast\Forecast {#2406
    -api_key: "somekey"
  }
}
*/

原始气象服务提供

//Not working
$some = new WeatherService(new \Forecast\Forecast(config('darksky.key')));

dd($some); //app\Services\WeatherService {#2405}

可以采取哪些措施来解决这个问题?

1 个答案:

答案 0 :(得分:0)

在另一个测试中,我有一个use声明。

use app\Services\WeatherService;

更改为

use App\Services\WeatherService;

解决了这个问题。

这是该类的代码。也许,某人知道为什么会这样。但这很奇怪。

class WeatherControllerTest extends TestCase
{
    use WithoutMiddleware;

    private $mock;
    private $cities;

    protected function setUp()
    {
        parent::setUp();

        $this->mock = \Mockery::mock(WeatherService::class);
    }


    public function tearDown()
    {
        \Mockery::close();
    }

    //...
}