Voglio testare un componente semplice che ha alcune dipendenze. Quindi tra gli altri devo fornire alcuni fornitori.Errore test unità angolare 2: Impossibile risolvere tutti i parametri per 'RequestOptions'
/* 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
});
});
se sto ottenendo il seguente errore:
Error: Cannot resolve all parameters for 'RequestOptions'(?). Make sure that all the parameters are decorated with Inject or have valid type annotations and that 'RequestOptions' is decorated with Injectable.
Mi sto perdendo qualcosa oin la funzione beforeEachProviders
?
Nota: questa domanda è relativa solo al test unitario di Angular 2 con Jasmine. Non sto cercando informazioni relative all'app di bootstrap perché questo è già ok nella mia app e ci sono altre domande correlate qui.
Hi @Sunil, in questo caso sto ottenendo: 'Errore: nessun provider per RequestOptions! (AuthHttp -> RequestOptions) ' –
@VassilisPits dove ricevi questo errore? Da qualche parte stai cercando di iniettare 'RequestOptions', e non dovresti farlo. 1) Non puoi iniettare questa classe, non ha l'annotazione 'Injectable()', controlla la [fonte] (https://github.com/angular/angular/blob/2.0.0-rc.4/modules/ % 40angular/http/src/base_request_options.ts # L17-L123). Hai solo bisogno di istanziare l'oggetto 'RequestOptions' con l'operatore' new' come mostrato sopra, e come mostrato nella [documentazione] (https://angular.io/docs/ts/latest/api/http/index/ RequestOptions-class.html). –
Non sto iniettando da qualche altra parte, questa è la cosa strana:/ –