angular - 如何在 Angular 2 中为单元测试创​​建新事件?

标签 angular typescript karma-jasmine angular-test

您好,我正在为我的 Angular 代码编写单元测试用例。我正在尝试更新 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);
    });

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

最佳答案

您可以制作一个硬编码值 event.target.value 并在您的 updateValue 函数中验证 rowsCache[rowIndex][cell]将具有该值。

你可以用一个简单的对象模拟一个事件,像这样:

const event = { target: { value: 42 }};
component.updateValue(event, cell, cellValue, rowIndex);

关于angular - 如何在 Angular 2 中为单元测试创​​建新事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50463378/

相关文章:

angular - @Output 从指令发出值到父组件 Angular 4

css - Angular2如何在拖放时更改背景颜色

css - 如何在 Angular 5 中为 typescript 中的字符串添加颜色

javascript - Karma/Jasmine 规范 -- 预期 { } 等于 { }

javascript - Jasmine 监视 Angular 服务

angular - Dockerizing Angular 应用程序后路由不起作用

javascript - 使用 angular2 将 HTML 从服务器插入 DOM(Angular2 中的一般 DOM 操作)

typescript - 字符串类型和字符串类型有什么区别?

javascript - 如何在 TypeScript 中描述这个对象的形状?

javascript - 检查 Jasmine 测试中一个函数是否调用了另一个函数