如何修复 beforeEachProviders(在 RC4 上已弃用)
How to fix beforeEachProviders (deprecated on RC4)
我刚刚将 Angular2 从 RC3 升级到 RC4 ...
import {
expect, it, iit, xit,
describe, ddescribe, xdescribe,
beforeEach, beforeEachProviders, withProviders,
async, inject
} from '@angular/core/testing';
在我的单元测试中,我有以下代码...
beforeEachProviders(() => [
{provide: Router, useClass: MockRouter}
]);
这工作正常但自从移动到 RC4 我在 beforeEachProviders
上收到弃用警告。
有人知道新的做事方式是什么吗?或者我应该从其他地方导入 beforeEachProviders
而不是 '@angular/core/testing'?
您需要从@angular/core/testing 导入addProviders。
而不是:
beforeEachProviders(() => [
{provide: Router, useClass: MockRouter}
]);
你会想要这样做:
beforeEach(() => {
addProviders([
{provide: Router, useClass: MockRouter}
])
});
查看其他一些文档后,您似乎想要:
beforeEach(() => TestBed.configureTestingModule({
providers: [
{ provide: Service, useClass: MockService }
]})
);
这是一个完整的示例,用于 Window 参考服务:
import { TestBed, inject } from '@angular/core/testing';
import { WindowRef } from './window-ref';
describe('WindowRef', () => {
let subject: WindowRef;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
WindowRef
]});
});
beforeEach(inject([WindowRef], (windowRef: WindowRef) => {
subject = windowRef;
}));
it('should provide a way to access the native window object', () => {
expect(subject.nativeWindow).toBe(window);
});
});
我刚刚将 Angular2 从 RC3 升级到 RC4 ...
import {
expect, it, iit, xit,
describe, ddescribe, xdescribe,
beforeEach, beforeEachProviders, withProviders,
async, inject
} from '@angular/core/testing';
在我的单元测试中,我有以下代码...
beforeEachProviders(() => [
{provide: Router, useClass: MockRouter}
]);
这工作正常但自从移动到 RC4 我在 beforeEachProviders
上收到弃用警告。
有人知道新的做事方式是什么吗?或者我应该从其他地方导入 beforeEachProviders
而不是 '@angular/core/testing'?
您需要从@angular/core/testing 导入addProviders。
而不是:
beforeEachProviders(() => [
{provide: Router, useClass: MockRouter}
]);
你会想要这样做:
beforeEach(() => {
addProviders([
{provide: Router, useClass: MockRouter}
])
});
查看其他一些文档后,您似乎想要:
beforeEach(() => TestBed.configureTestingModule({
providers: [
{ provide: Service, useClass: MockService }
]})
);
这是一个完整的示例,用于 Window 参考服务:
import { TestBed, inject } from '@angular/core/testing';
import { WindowRef } from './window-ref';
describe('WindowRef', () => {
let subject: WindowRef;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
WindowRef
]});
});
beforeEach(inject([WindowRef], (windowRef: WindowRef) => {
subject = windowRef;
}));
it('should provide a way to access the native window object', () => {
expect(subject.nativeWindow).toBe(window);
});
});