[英]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.