[英]WebTestCase fails after Silex 2 upgrade
我對控制器測試有以下基本要求:
public function createApplication() {
include __DIR__ . '../web/index_dev.php';
$app['debug'] = true;
$app['session.test'] = true;
$app['helper'] = function ($app) {
return new TestHelper($app);
}; // fails!!
return $app;
}
public function setUp() {
parent::setUp();
$this->client = parent::createClient();
}
在Silex 1.3上,它可以正常工作,但是在v2升級后,它在標記行上失敗。 一旦我發表評論-一切都很好。
UPD#1:我發現了失敗的原因: Cannot override frozen service "helper".
我了解錯誤的含義,但不知道如何解決。 這是一個測試用例,所以我需要用對象的模擬/測試實現替換它,但是不能。
您的問題是Pimple容器的升級。 一旦獲得服務,Silex 2的Pimple版本將凍結服務 。
因此,您的問題是您先前在代碼上獲得了“幫助程序”服務。 您應該重構代碼,以便在啟動應用程序時不會獲得該服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.