4
私はAngular2アプリケーションのテストをしようとしています。私はまだモッキングサービスを作っていないので、私は通常のサービスを利用しようとしています。ng test Http!のプロバイダはありません!エラー
正確なエラー:
Error: No provider for Http!
at injectionError (http://localhost:9876/base/src/test.ts:1538:86) [angular]
at noProviderError (http://localhost:9876/base/src/test.ts:1576:12) [angular]
at ReflectiveInjector_.Array.concat.ReflectiveInjector_._throwOrNull (http://localhost:9876/base/src/test.ts:3077:19) [angular]
at ReflectiveInjector_.Array.concat.ReflectiveInjector_._getByKeyDefault (http://localhost:9876/base/src/test.ts:3116:25) [angular]
at ReflectiveInjector_.Array.concat.ReflectiveInjector_._getByKey (http://localhost:9876/base/src/test.ts:3048:25) [angular]
at ReflectiveInjector_.Array.concat.ReflectiveInjector_.get (http://localhost:9876/base/src/test.ts:2917:21) [angular]
at DynamicTestModuleInjector.Array.concat.NgModuleInjector.get (http://localhost:9876/base/src/test.ts:3864:52) [angular]
Iテストするコンポーネントの@Componentである:
@Component({
selector: 'app-game-board',
templateUrl: './game-board.component.html',
styleUrls: ['./game-board.component.css'],
providers: [GameBoardService]
})
Iは、spec.tsクラス(試験)にHttpModuleをインポートしようとしました私はそれを働かせることはできません。ここで私はまた、テストクラスのプロバイダでこれを試してみました
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { GameBoardComponent } from './game-board.component';
import { GameBoardService } from "app/services/gameboardservice";
describe('GameBoardComponent',() => {
let component: GameBoardComponent;
let fixture: ComponentFixture<GameBoardComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [HttpModule], //this is where I try to import the HttpModule
declarations: [ GameBoardComponent ],
providers: [GameBoardService]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(GameBoardComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create',() => {
expect(component).toBeTruthy();
});
});
spec.tsのコードです:あなたはまだあなたのテストクラスにHTTPを提供する必要があります
providers: [{ provide: Http, useValue: GameBoardService }]
うん!働いた。 MockBackend https://angular.io/api/http/testing/MockBackendのいくつかのドキュメントとサンプルについては、こちらをご覧ください –