Angular 4 - 在组件具有另一个组件时进行测试

时间:2017-09-27 08:55:11

标签: angular

我正在对我的Angular应用程序进行测试:

ng test

这是我的html文件(page-not-found.component.html):

<menu></menu>
<div>
  <h4>
    ERROR 404 - PÁGINA NO ENCONTRADA
  </h4>
</div>

当我运行测试时,组件会给我错误。

这是文件规范(page-not-found.component.spec.ts)

import { MenuComponent } from '../menu/menu.component';

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ PageNotFoundComponent, MenuComponent ]
    })
    .compileComponents();
  }));

这是组件代码(pàge-not-found.component.ts)

import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-page-not-found',
  templateUrl: './page-not-found.component.html',
  styleUrls: ['./page-not-found.component.css']
})
export class PageNotFoundComponent implements OnInit {

  constructor() { }

  ngOnInit() {
  }

}

这是错误:

Error: No provider for ActivatedRoute!
你告诉我这个问题吗?感谢

1 个答案:

答案 0 :(得分:2)

您需要在Testbed中为ActivatedRoute提供提供程序。例如

 TestBed.configureTestingModule({
      declarations: [ PageNotFoundComponent, MenuComponent ],
providers: [
        {provide: ActivatedRoute, useValue: activatedRoute}, // using a mock
      ]
    })

那个me​​nucomponent是否需要在你未找到的组件中?