1
我想模擬一個類構造函數所需的服務。我有一個PHPUnit異常:MyService是必需的,Mock_MyService_0afc7fc1給出。是否可以嘲笑我們自己的服務?
但是使用Request,EntityManager或其他Symfony 2組件,我沒有這個問題。
這裏是我的類的構造:
use Acme\Bundle\Service\MyService;
use Symfony\Component\HttpFoundation\Request;
...
public function __construct(MyService $service, Request $request)
{
和我的模擬:
...
$service = $this->getMock('MyService');
$class = new Class($service, $request);
這是不可能的嘲笑我們自己的服務?只有Symfony 2組件?
PS:如果我刪除MyService
那樣:public function __construct($service, Request $request)
,這個工作。但我想我的定義變量,它:(
如果你有自動加載設置,它的工作原理沒有完整的路徑,但! – markus
謝謝你的回答! +1 – rgazelot
@ markus-tharkun它的作用是「嘲弄某些東西」,但它無法爲您提供正確的方法並擴展到同一個類。 PHPUnit沒有意識到類定義的名稱空間,並且它不能解析測試類中的任何使用語句(因爲這需要靜態代碼分析)。通過https://wiki.php.net/rfc/class_name_scalars,這看起來很不錯:'MyService :: class'而不是長路徑。但現在我不知道替代品:)(糾正我,如果我錯了,錯過了什麼) – edorian