2016-07-01 15 views
16

Ive chỉ cần nâng cấp Angular2 từ RC3 để RC4 ...Làm thế nào để sửa chữa beforeEachProviders (bị phản đối trên RC4)

import { 
    expect, it, iit, xit, 
    describe, ddescribe, xdescribe, 
    beforeEach, beforeEachProviders, withProviders, 
    async, inject 
} from '@angular/core/testing'; 

Trong thử nghiệm đơn vị của tôi Tôi có đoạn code sau đây ...

beforeEachProviders(() => [ 
    {provide: Router, useClass: MockRouter} 
]); 

này hoạt động tốt nhưng kể từ khi chuyển sang RC4, tôi có cảnh báo không dùng nữa trên beforeEachProviders.

Bất cứ ai biết cách làm mới là gì? Hoặc tôi có nên nhập beforeEachProviders từ một nơi khác thay vì '@ góc/lõi/thử nghiệm' không?

Trả lời

20

Bạn sẽ cần nhập trình bổ sung từ @ góc/lõi/thử nghiệm.

Thay vì:

beforeEachProviders(() => [ 
    {provide: Router, useClass: MockRouter} 
]); 

Bạn sẽ muốn làm điều này:

beforeEach(() => { 
    addProviders([ 
     {provide: Router, useClass: MockRouter} 
    ]) 
}); 

Nguồn: RC4 Changelog

+1

Cảm ơn bạn đã bao giờ quá nhiều - bạn sử dụng các addProviders là đúng - việc bạn sử dụng cung cấp là không cần thiết (và có lẽ bị phản đối) . Tài liệu tham khảo của bạn cho nhật ký thay đổi là rất cần thiết - rất nhiều cảm ơn. Vì vậy, hữu ích tôi vô cùng biết ơn. Đã cứu tôi rất nhiều thời gian! – danday74

+1

cung cấp() đã không được chấp nhận, nhưng bạn có sử dụng thay thế không? – wholladay

+1

@wholladay Một đối tượng đơn giản, xem sự khác biệt http://stackoverflow.com/review/suggested-edits/12924184 – estus

1

Dưới đây là một ví dụ hoàn chỉnh, cho một dịch vụ tham khảo 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); 
    }); 
}); 
Các vấn đề liên quan