加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

单元测试 – 任何方式在Angular2中测试EventEmitter?

发布时间:2020-12-17 09:29:25 所属栏目:安全 来源:网络整理
导读:我有一个使用EventEmitter的组件,当单击页面上的某个人时使用EventEmitter.有什么办法可以在单元测试期间观察EventEmitter,并使用TestComponentBuilder单击触发EventEmitter.next()方法的元素,并查看发送的内容? 您的测试可能是: it('should emit on click
我有一个使用EventEmitter的组件,当单击页面上的某个人时使用EventEmitter.有什么办法可以在单元测试期间观察EventEmitter,并使用TestComponentBuilder单击触发EventEmitter.next()方法的元素,并查看发送的内容?
您的测试可能是:
it('should emit on click',inject([],() => {
   tcb.createAsync(MyComponent)
      .then((fixture) => {
        // spy on event emitter
        let component = fixture.componentInstance; 
        spyOn(component.myEventEmitter,'emit');

        // trigger the click
        let nativeElement = fixture.nativeElement;
        let button = nativeElement.querySelector('button');
        button.dispatchEvent(new Event('click'));

        fixture.detectChanges();

        expect(component.myEventEmitter.emit).toHaveBeenCalledWith('hello');
      });
}));

当你的组件是:

@Component({ ... })
class MyComponent {
  @Output myEventEmitter = new EventEmitter();

  buttonClick() {
    this.myEventEmitter.emit('hello');
  }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读