小编JoW*_*ter的帖子

使用Jasmine Spies进行Angular 2组件测试"没有Http提供商!" 错误

我正在尝试测试使用服务的Angular 2组件.该服务注入了Http,我对测试不感兴趣所以我试图模拟服务并监视服务的方法调用.这是我在Angular 1中非常熟悉的事情,但我无法在Angular 2中工作.我得到的错误是Http的无提供者!我有兴趣监视实际的服务方法,而不是嘲笑它.

我的组件看起来像这样:

import { Component, OnInit } from '@angular/core';
import { NavBarLink } from '../../models/nav-bar-link';
import { NavBarService } from '../../services/nav-bar/nav-bar.service';

@Component({
    selector: 'nav-bar',
    providers: [NavBarService],
    moduleId: module.id,
    templateUrl: 'nav-bar.template.html'
})
export class NavBarComponent {
  constructor(private _navBarService: NavBarService) { }

 links: NavBarLink[];

 getLinks(): void {
  this._navBarService.getNavBarLinks().then(data => this.links = data);
 }

ngOnInit(): void {
   this.getLinks();
  }
}
Run Code Online (Sandbox Code Playgroud)

我的服务看起来像这样:

import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';

import 'rxjs/add/operator/toPromise';

import { Urls } …
Run Code Online (Sandbox Code Playgroud)

components unit-testing jasmine angular

6
推荐指数
2
解决办法
3812
查看次数

标签 统计

angular ×1

components ×1

jasmine ×1

unit-testing ×1