2016-07-13 5 views
1

私はRC4にRC3を更新し、今私は私のテストでは、このエラーが表示されます。Angular2 RC4:overrideDirective

@angular/[email protected]/testing/test_component_builder.js内部 TestComponentBuilder
Error: overrideDirective is not supported in this implementation of TestComponentBuilder 

私は方法

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

のこの宣言を見ることができます質問は次のとおりです:どのように指令を上書きするのですか?彼らがdeliberatevely this issue

に述べたように何か他のものと交換することなく、機能を削除しているようですので、

答えて

1

[OK]をので、私が見つけた唯一の解決策は、突然compiler/testingに現れた不思議なOverridingTestComponentBuilderを使用することです。

これはRC4のように理想的ではありません@angular/core/testingからインポートする必要がありますTestComponentBuilderが、これを整理するのを待っている一時的な修正です。

あなたはTestComponentBuilder

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

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

を使用すると思いますそして、すべてのオーバーライド*方法はうまく動作するはずと同じように、あなたがそれを使用することができ、クラスをインポートしたら。

1

デフォルトのAngularテストプロバイダは、デフォルトでTestComponentBuilderタイプのOverridingTestComponentBuilder実装を提供する必要があります。どのようにあなたのテストを設定していますか? (例:setBaseTestProviders?Angularによって提供されるリストを使用すると、問題が解決するはずです。)例:https://github.com/juliemr/ng2-test-seed/blob/master/karma-test-shim.js#L84

関連する問題