2017-10-12 96 views
0

我有2個類:\App\Services\WeatherService\App\Services\WeatherService1兩者都相等。Laravel 5.5。不能實例化具有特定名稱的類

在我的\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} 

可以做些什麼來解決這個問題?

+0

什麼是你的日誌文件?看起來您並未將Forecast存儲在類「WeatherService」中的屬性中。需要看類'App \ Services \ WeatherService'順便給我們試試App \ Services \ WeatherService' – Webdesigner

+0

@Webdesigner問題是我複製粘貼'WeatherService1'窗體'WeatherService'並且只重命名它。其餘的是相同的。 –

+0

但是事情一定是不一樣的,也許你錯過了什麼 – Webdesigner

回答

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(); 
    } 

    //... 
}  
相關問題