2016-07-13 6 views
1

ich nur RC3 zu RC4 aktualisiert und ich bekomme jetzt diesen Fehler in meinen Tests:Angular2 RC4: overrideDirective

Error: overrideDirective is not supported in this implementation of TestComponentBuilder 

In TestComponentBuilder innerhalb @angular/[email protected]/testing/test_component_builder.js ich diese Erklärung des Verfahrens sehen

TestComponentBuilder.prototype.overrideDirective = function(componentType, from, to) { 
    throw new Error('overrideDirective is not supported in this implementation of TestComponentBuilder.'); 
}; 

So Jetzt ist die Frage: Wie überschreibe ich eine Direktive?

Antwort

1

Ok, so scheint es, dass sie deliberatevely das Feature entfernt, ohne this issue in ihn durch etwas anderes wie angegeben ersetzt

So ist die einzige Lösung, die ich gefunden ist ein seltsames OverridingTestComponentBuilder zu verwenden, die plötzlich in compiler/testing erschienen.

Dies ist nicht ideal von RC4 TestComponentBuilder sollte von @angular/core/testing importiert werden, aber es ist eine temporäre Lösung, die darauf wartet, dass sie dies aussortieren.

Nachdem Sie die Klasse importieren Sie es mögen nur verwenden, können Sie TestComponentBuilder

import { OverridingTestComponentBuilder } from '@angular/compiler/testing' 

beforeEach(inject([OverridingTestComponentBuilder], _tcb => { 
    tcb = _tcb 
})); 

Und alle Überschreibung * Methoden sollten gut funktionieren verwenden würde.

1

Die standardmäßigen Angular-Testanbieter sollten standardmäßig eine OverridingTestComponentBuilder-Implementierung für den TestComponentBuilder-Typ angeben. Wie richten Sie Ihren Test ein? (z. B. setBaseTestProvider? Die Verwendung der von Angular bereitgestellten Listen sollte Ihr Problem beheben. Hier ein Beispiel: https://github.com/juliemr/ng2-test-seed/blob/master/karma-test-shim.js#L84

Verwandte Themen