【发布时间】:2016-11-18 22:22:28
【问题描述】:
我想测试一个具有一些依赖项的简单组件。因此,除其他外,我必须提供一些提供者。
/* tslint:disable:no-unused-variable */
import { By } from '@angular/platform-browser';
import { DebugElement, provide } from '@angular/core';
import {
beforeEach,
beforeEachProviders,
describe,
expect,
it,
inject,
fakeAsync,
TestComponentBuilder
} from '@angular/core/testing';
import { AuthHttp, AuthConfig } from 'angular2-jwt';
import { Router, provideRouter } from '@angular/router';
import { Http, ConnectionBackend, RequestOptions, HTTP_PROVIDERS } from '@angular/http';
import { LogoutButtonComponent } from './logout-button.component';
import { UserService } from '../../services/index';
describe('Component: LogoutButtonComponent', () => {
let component: LogoutButtonComponent;
beforeEachProviders(() => [
LogoutButtonComponent,
Http,
provide(AuthHttp, { useFactory: Http }),
provide(AuthConfig, { useValue: new AuthConfig() }),
ConnectionBackend,
RequestOptions,
UserService
]);
beforeEach(inject([AuthHttp, UserService, LogoutButtonComponent],
(comp: LogoutButtonComponent) => {
component = comp;
}));
it('should inject UserService', () => {
// My test here
});
});
虽然我收到以下错误:
错误:无法解析“RequestOptions”(?) 的所有参数。确保所有参数都用 Inject 修饰或具有有效的类型注释,并且 'RequestOptions' 用 Injectable 修饰。
我在beforeEachProviders 函数中遗漏了什么吗?
注意:此问题仅与 Angular 2 与 Jasmine 的单元测试有关。我没有搜索与引导应用程序相关的信息,因为这在我的应用程序中已经可以了,这里还有其他相关问题。
【问题讨论】:
标签: unit-testing typescript angular jasmine