簡體   English   中英

如何使用構造函數內部的參數測試angular2類/服務?

[英]How to test angular2 class/service with parameters inside constructor?

我在構造函數中有一個簡單的類,帶有方法和構造函數注入:

import { WindowService } from '../path_to_serivce';

    export class ModeCheck {

      constructor(private windowRef: WindowService) { }

      public isMode(): boolean {
       logic ...
      }

    }

和我的Interceptor測試spec.ts類(假設導入內容在上面)

describe('Interceptor', () => {

    beforeEach(() => {
        TestBed.configureTestingModule({
            imports: [HttpClientTestingModule],
            providers: [
                {
                    provide: HTTP_INTERCEPTORS,
                    useClass: ModeInterceptor,
                    multi: true
                }, ModeCheck]
          });
    }); 


 });

我得到的Error: Can't resolve all parameters for ModeCheck: (?).Error: Can't resolve all parameters for ModeCheck: (?). 基本上說我必須在測試中處理構造函數參數。 我該如何處理?

您在將類視為需要注入其他服務的服務的類上需要@Injectable()裝飾器。

您在ModeCheck類的export上方需要它。

如果在服務類上沒有此裝飾器,則將無法解析構造函數依賴項。 實際上,無論您是否在構造函數中獲取依賴關系,都建議您將該裝飾程序添加到服務中。 這是一種明確的方法,可以告訴任何查看代碼的人該類是服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM