簡體   English   中英

Silex 2升級后,WebTestCase失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM