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

默认情况下,默认的 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 回答
1

好的,所以他们似乎故意删除了该功能,而没有用本期中所述的其他内容替换它

所以我找到的唯一解决方案是使用一个 OverridingTestComponentBuilder突然出现在compiler/testing.

这并不理想,因为TestComponentBuilder应该从 RC4 导入,@angular/core/testing但这是一个临时修复,等待他们解决这个问题。

导入类后,您可以像使用它一样使用它TestComponentBuilder

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

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

并且所有 override* 方法都应该可以正常工作。

于 2016-07-13T13:51:51.107 回答