Как исправить beforeEachProviders (устарел на RC4)
Я только что обновил Angular2 от RC3 до RC4...
import {
expect, it, iit, xit,
describe, ddescribe, xdescribe,
beforeEach, beforeEachProviders, withProviders,
async, inject
} from '@angular/core/testing';
В моем unit test у меня есть следующий код...
beforeEachProviders(() => [
{provide: Router, useClass: MockRouter}
]);
Это отлично работает, но с переходом на RC4 у меня есть предупреждение об отказе от beforeEachProviders
.
Кто-нибудь знает, что новый способ делать вещи? Или мне нужно импортировать beforeEachProviders
из другого места вместо '@angular/core/testing'?
Ответы
Ответ 1
Вам нужно будет импортировать addProviders из @ angular/core/testing.
Вместо:
beforeEachProviders(() => [
{provide: Router, useClass: MockRouter}
]);
Вы захотите сделать это:
beforeEach(() => {
addProviders([
{provide: Router, useClass: MockRouter}
])
});
Источник: RC4 Changelog
Ответ 2
После просмотра нескольких других документов вам будет необходимо:
beforeEach(() => TestBed.configureTestingModule({
providers: [
{ provide: Service, useClass: MockService }
]})
);
Источник: https://angular.io/docs/ts/latest/guide/dependency-injection.html
Ответ 3
Вот полный пример для справочной службы 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);
});
});