簡體   English   中英

Symfony2驗證-在TEST環境中覆蓋checkMX約束

[英]Symfony2 validation - override checkMX constraint in TEST environment

我有一個帶有驗證設置的Symfony表單(使用validations.yml文件中的定義)。 在此表單中,是一個電子郵件字段,我在其中添加了checkMX驗證程序約束。 在正常使用情況下可以正常工作。 http://symfony.com/doc/current/reference/constraints/Email.html#checkmx

但是,在運行沒有Internet連接的測試套件時,由於驗證程序嘗試查找電子郵件地址域的DNS,這將使測試停止,並且它無法查找DNS,因此必須等待超時。 無論如何,在測試過程中需要遠程查找都是不理想的。

是否只有在運行TEST環境時,才能從驗證中刪除此約束? 大概我只需要重寫約束,但是我不知道如何針對每個環境執行此操作。

謝謝

您可以從控制器獲取環境並將其傳遞給表單:

$env = $this->container->get( 'kernel' )->getEnvironment();
$oForm = $this->createForm(new Form($env));

然后在您的BuildForm之前:

 public function __construct($env)
{
    $this->sEnv  = $env;
}

然后您進行測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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