带有Jest的角单击事件Dom单元测试

时间:2019-07-19 12:23:03

标签: angular unit-testing jestjs

我正在尝试从一个简单的按钮组件测试一个简单的click事件。使用业力+茉莉花是非常简单的方法,但是我并没有开玩笑。

这是我要测试的按钮组件:

WHERE
pf.Current_status = 'Employed'
and (fs.ans_text='yes' and fs.QUES_ID=17)
and (fs.ans_text like ('Non-MFG') and fs.QUES_ID=3)
or (fs.ans_text=null and fs.QUES_ID=3)
ID    Last    First    Middle    Designation Answer
4     Grafton Sue      M         Non-MFG     Yes
...

现在,我想在单击按钮时测试EventEmitter是否正在触发:

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

@Component({
  selector: 'ui-button',
  styleUrls: ['./button.component.scss'],
  templateUrl: './button.component.html',
})
export class ButtonComponent implements OnInit {
  @Output() public click = new EventEmitter<void>();

  constructor() {}

  public ngOnInit() {}
}

测试失败,因为该事件从未触发,正如您在我的日志输出中看到的那样:

<button type="button" class="btn btn-primary" click="click.emit($event)">
  <ng-content></ng-content>
</button>

我需要更改什么,以便我的活动开始?

1 个答案:

答案 0 :(得分:1)

我不知道它如何与业力/茉莉花一起使用?

我认为这是因为您使用了事件发射器:

<button type="button" class="btn btn-primary" (click)="click.emit($event)">
  <ng-content></ng-content>
</button>

否则您的测试似乎很好