2016-11-28 4 views
4

フォームをテストしようとしています。私はラインバギーがあることを理解symfonyフォームテストメンバー関数nullでのcreate()

class MediaTypeTest extends TypeTestCase 
{ 
    protected function setUp() 
    { 

    } 

    protected function tearDown() 
    { 
    } 

    // tests 
    public function testMe() 
    { 

     $formData = array(
      'test' => 'test', 
      'test2' => 'test2', 
     ); 

     $form = $this->factory->create(MediaType::class); 

     // submit the data to the form directly 
     $form->submit($formData); 

     $this->assertTrue($form->isSynchronized()); 
     $this->assertEquals(new Media(), $form->getData()); 

     $view = $form->createView(); 
     $children = $view->children; 

     foreach (array_keys($formData) as $key) { 
      $this->assertArrayHasKey($key, $children); 
     } 
    } 
} 

null例外を取得

:しかし、私はことを読ん

$ FORM =の$ this - >出荷時>作成(のMediaType ::クラス);

どうすれば解決できますか?

私が起動します。

PHPUnitテスト/ユニット/フォーム/ MediaTypeTest.php

またはcodeception経由:

PHPベンダー/ binに/ codeceptを実行単位フォーム/ MediaTypeTest .php

+0

あなたは右のクラスを拡張している確認し、このヘルプは

protected function setUp() { parent::setUp(); } protected function tearDown() { parent::tearDown(); } 

希望:

だから、一般的にはあなたが継承メソッドをオーバーライドする場合、親クラスのメソッドを呼び出すことを忘れないでください\ TypeTestCase'の代わりに '\ TypeTestCase'の代わりに' Symfony \ Component \ Form \ Tests \ Extension \ Validator \ Type \ TypeTestCase'を使用してください。お知らせ下さい – Matteo

答えて

2

ファクトリオブジェクトは、initializated in the setup method of the parent test classので、あなたは、あなたのテストケースsetup方法でparentを呼び出す(またはそれの空の実装を削除する)必要がありです。 `symfonyの\コンポーネント\フォーム\テスト:

関連する問題