1

RC3 を RC4 に更新したところ、テストで次のエラーが発生しました。

Error: overrideDirective is not supported in this implementation of TestComponentBuilder

TestComponentBuilder内部では、この@angular/core@2.0.0-rc.4/testing/test_component_builder.jsメソッドの宣言を見ることができます

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

質問は次のとおりです。ディレクティブをオーバーライドするにはどうすればよいですか?

4

2 に答える 2

1

わかりましたので、この問題に記載されているように、他のものに置き換えることなく、意図的に機能を削除したようです

したがって、私が見つけた唯一の解決策は、 OverridingTestComponentBuilderに突然現れたストレンジを使用することcompiler/testingです。

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

クラスをインポートしたら、使用するのと同じように使用できますTestComponentBuilder

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

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

そして、すべての override* メソッドが適切に機能するはずです。

于 2016-07-13T13:51:51.107 に答える
1

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

于 2016-07-13T16:51:45.560 に答える