angular.io上的单元测试示例

时间:2017-05-17 23:40:50

标签: angular unit-testing

document

中的

  it('should raise selected event when clicked', () => {
    let selectedHero: Hero;
    comp.selected.subscribe((hero: Hero) => selectedHero = hero);

    heroEl.triggerEventHandler('click', null);
    expect(selectedHero).toBe(expectedHero);
  });

不应该像

comp.selected.subscribe((hero: Hero) => {
  selectedHero = hero;
  expect(selectedHero).toBe(expectedHero);
});

1 个答案:

答案 0 :(得分:1)

由于jasmine而不能是这样。

如果你这样做:

it('should raise selected event when clicked', () => {
    let selectedHero: Hero;
    comp.selected.subscribe((hero: Hero) => {
      selectedHero = hero;
      expect(selectedHero).toBe(expectedHero);
    });

    heroEl.triggerEventHandler('click', null);
});

并且,由于存在错误,事件click未被捕获,那么您的期望将永远不会被测试,并且您没有失败。

通过在selectedHero之后测试click,测试可确保如果未处理click事件,则测试将失败,因为selectedHero将为undefined