为了账号安全,请及时绑定邮箱和手机立即绑定

我应该如何测试这个角度组件?

我应该如何测试这个角度组件?

慕容3067478 2021-06-01 12:58:27
假设我有一个在单击时发出事件的组件,即    @Component({      selector: 'component-checkout-payment',      template: `<button (click)="click()>Click me</button>`    })    export class TestComponent{      @Output() clicked = new EventEmitter<boolean>();      click() {        this.clicked.emit(true);      }    }然后我会像下面那样分别测试事件和组件方法吗?it('should emit an event when `click` is called`, () => {  jest.spyOn(component.clicked, 'emit');  component.click();  expect(component.clicked.emit).toHaveBeenCalledWith(true);});it('should call `click` when button has been clicked`, () => {  jest.spyOn(component, 'click');  let button = fixture.debugElement.nativeElement.querySelector('button');  button.click();  expect(component.click).toHaveBeenCalled();})或者我会测试当按钮被点击时,它又会发出一个事件吗?it('should emit event when button has been clicked`, () => {  jest.spyOn(component.clicked, 'emit');  let button = fixture.debugElement.nativeElement.querySelector('button');  button.click();  expect(component.clicked.emit).toHaveBeenCalledWith(true)})我假设是后者,因为它将前两个测试合二为一。不过我想澄清一下。我还想知道这些类型的测试是单元测试、集成测试还是 e2e 测试。
查看完整描述

1 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

这两种方法都是有效的,这完全取决于您的喜好。

这些是单元测试。它们可以防止您的应用程序产生副作用:如果测试失败,则意味着您的功能已被修改。

这不是集成测试,因为您测试单个组件,也不是端到端测试,因为您没有一直通过后端。


查看完整回答
反对 回复 2021-06-03
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信