Ich habe bereits das gleiche Problem beim Testen einiger meiner angepassten Typen.
Hier ist die Art, wie ich es herausgefunden habe (indem ich EntityType verspottet habe),
Stellen Sie zunächst sicher, dass Ihre Testklasse erweitert TypeTestCase ,
%Vor%Fügen Sie anschließend eine vorinstallierte Erweiterung zu Ihrem form factory , um die EntityType
%Vor%Und schließlich fügen Sie eine Entität hinzu Tippen Sie , um Ihre vorinstallierte Erweiterung abzuspielen.
%Vor%Aber möglicherweise müssen Sie ...
Meckern Sie die Registrierung , die DoctrineType nimmt als Parameter beim Aufruf seines Standardkonstruktors, weil es von setDefaultOptions()
verwendet wird (Keep in Beachten Sie, dass EntityType erweitert DoctrineType ), um class und eigenschaft Optionen Ihres Entitätsfelds .
Sie müssen dann den EntityType wie folgt vortäuschen:
%Vor% Die Antwort von Ahmed Siouani ist gut geschrieben und hat mir erlaubt zu verstehen, wie man ein Extension
in TypeTestCase
hinzufügt.
Aber wenn Sie einen Integrationstest machen wollen, der in diesem Fall viel einfacher ist als ein Komponententest, können Sie Folgendes tun:
%Vor%Wie in dieser Dokumentation beschrieben: Ссылка