3

嗨,我正在为我的角度代码编写单元测试用例。我正在尝试更新 gridview 中的文本框。下面是我的gridview代码。

<input *ngIf="editing[rowIndex + '-scopevalue']" class="inline-editor" autofocus (blur)="updateValue($event, 'scopevalue', value, rowIndex)" type="text" [value]="value" />

下面的函数执行更新。

 updateValue(event, cell, cellValue, rowIndex) {
        this.editing[rowIndex + '-' + cell] = false;
        this.rows[rowIndex][cell] = event.target.value;
        this.rowsCache[rowIndex][cell] = event.target.value;
        this.scopeEdit = this.rows[rowIndex];
        this.updateScope();
    }

下面的单元测试用例我写来检查上面的代码。

 it('update scope name value', () => {
        var row = component.rows[0];
        let cell = 'scopevalue';
        let cellValue = row.scopevalue;
        let rowIndex = 0;
        component.updateValue('/bmw', cell, cellValue, rowIndex);
    });

在上述方法中,第一个参数应该是事件。有人可以帮我如何创建活动吗?任何帮助,将不胜感激。谢谢

4

2 回答 2

8

您可以在函数中创建硬编码值event.target.value并验证是否具有该值。updateValuerowsCache[rowIndex][cell]

您可以使用简单的对象模拟事件,如下所示:

const event = { target: { value: 42 }};
component.updateValue(event, cell, cellValue, rowIndex);
于 2018-05-22T09:33:27.850 回答
0

如果您的方法的参数被键入为 Event 对象:

const mockEvent: Event = <Event><any>{
  target: {
      value: 42      
  }
};
component.updateValue(mockEvent, cell, cellValue, rowIndex);
于 2021-11-16T07:51:59.323 回答