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
の廃止に関する警告が出ます。
誰もが物事の新しい方法が何であるか知っていますか?または、「@ angular/core/testing」ではなく、どこかからbeforeEachProviders
をインポートする必要がありますか?
@ angular/core/testingからaddProvidersをインポートする必要があります。
の代わりに:
beforeEachProviders(() => [
{provide: Router, useClass: MockRouter}
]);
あなたはこれをしたいと思うでしょう:
beforeEach(() => {
addProviders([
{provide: Router, useClass: MockRouter}
])
});
出典: RC4 Changelog
他のいくつかのドキュメントを確認した後、あなたが望むように見えます:
beforeEach(() => TestBed.configureTestingModule({
providers: [
{ provide: Service, useClass: MockService }
]})
);
以下は、ウィンドウ参照サービスの完全な例です。
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);
});
});