用Angular 2模拟组件

乔卡

我正在尝试嘲笑“英雄之旅” Angular 2教程中的Heroes组件但是我不知道如何模拟路由器,这是实例化HeroesComponent所必需的。我试图用Jasmine创建一个间谍,但这没有用,因为它缺少属性'RootComponentType'。

我该如何进行这项工作?

import {HeroesComponent} from "./heroes.component";
import {Router} from "@angular/router-deprecated";
import {HeroService} from "./hero.service";


describe('HeroesComponent', () => {
    let heroes:HeroesComponent;
    let router:Router;
    let service:HeroService;
    beforeEach(() => {
        router = jasmine.createSpyObj('Router', ['navigate']);
        service = new HeroService(/* I will care about this later */);
        heroes = new HeroesComponent(router, service);
    });
    it('should be defined', () => {
        expect(heroes).toBeDefined();
    });
});

现在正在工作:

describe('HeroesComponent', () => {
    let router:any;
    let heroesComponent:HeroesComponent;
    let service:HeroService;

    beforeEach(() => {
        router = new class {
            navigate = jasmine.createSpy("navigate");
        };
        heroesComponent = new HeroesComponent(router, service);
    });
    it('should be defined', () => {
        expect(heroesComponent).toBeDefined();
    });
});
安德烈·托尔斯泰(Andriy Tolstoy)

您可以直接在导航方法上创建间谍。

  1. 对DI使用addProviders:

    beforeEach(() => addProviders([
    { 
        provide: Router, 
        useClass: class { navigate = jasmine.createSpy("navigate"); }
    }]));
    
  2. 对于组件的直接初始化:

    let router;
    let heroesComponent;
    
    beforeEach(() => {
        router = new class { navigate = jasmine.createSpy("navigate"); };
        heroesComponent = new HeroesComponent(router);
    });
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

angular2测试,如何模拟子组件

来自分类Dev

如何模拟Angular 2组件的JQuery Ajax调用

来自分类Dev

Angular 2单元测试组件,模拟ContentChildren

来自分类Dev

如何模拟Angular 2组件的JQuery Ajax调用

来自分类Dev

Angular 2-如何模拟在组件中被调用的服务?

来自分类Dev

Angular 2组件中'controllerAs'指令的属性的模拟是什么?

来自分类Dev

用酶模拟功能组件的输入变化

来自分类Dev

Angular2:用组件的模板替换宿主元素

来自分类Dev

无法在Angular测试中模拟子组件

来自分类Dev

Angular 2 组件中的组件

来自分类Dev

用React或Jest模拟React useRef或功能组件内部的功能?

来自分类Dev

用Jest测试时如何用模拟替换React组件

来自分类Dev

Angular 2多个组件

来自分类Dev

Angular 2模板组件

来自分类Dev

Angular 9单元测试:如何模拟测试组件的导入?

来自分类Dev

在单元测试中模拟Angular 1.5组件

来自分类Dev

在Angular单元测试中,如何模拟整个组件而不是仅模拟类?

来自分类Dev

Angular 2用ngClass做else

来自分类Dev

用angular2实现tinymce

来自分类Dev

Angular 2 服务:正确的用例

来自分类Dev

从基础组件继承的angular 2

来自分类Dev

重用Angular 2中的组件

来自分类Dev

创建单独的组件Angular 2

来自分类Dev

重用Angular 2表单组件

来自分类Dev

处置Angular 2应用或组件

来自分类Dev

创建单独的组件Angular 2

来自分类Dev

通过组件导航-Angular 2

来自分类Dev

Angular 2变量外部组件

来自分类Dev

处置Angular 2应用或组件