如何编写 ag agrid cellRenderer 的单元测试用例并以角度返回值

发布于 2025-01-15 22:09:22 字数 925 浏览 1 评论 0原文

TS:

columnDefs = [
 { headerName: 'columnone', field: 'one', width: 120, sortable: true, 
   cellRenderer: (data) => {
        return this.limitCommonUtil.numberFormatter(data?.data?.upperAmount);
 }
    },
    { headerName: 'columntwo', field: 'two', width: 120, sortable: true,
      cellRenderer: (data) => {
        return this.limitCommonUtil.dateFormatterDDMMMYYYY(data?.data?.startDate);
      }]

HTML:

<ag-grid-angular
            [rowData]="(dataStream)"
            [columnDefs]="columnDefs"
            class="side-panels-container-grid"
            [gridOptions]="gridOptionsDefault"
            (selectionChanged)="onSelectionChanged()">
        </ag-grid-angular>

如何为 jasmine 和 karma 中的 columndef 编写单元测试用例?我无法覆盖 cellRendered 返回函数。出现如下错误。

错误: 无法读取未定义的属性(读取“数据”)抛出

TS:

columnDefs = [
 { headerName: 'columnone', field: 'one', width: 120, sortable: true, 
   cellRenderer: (data) => {
        return this.limitCommonUtil.numberFormatter(data?.data?.upperAmount);
 }
    },
    { headerName: 'columntwo', field: 'two', width: 120, sortable: true,
      cellRenderer: (data) => {
        return this.limitCommonUtil.dateFormatterDDMMMYYYY(data?.data?.startDate);
      }]

HTML:

<ag-grid-angular
            [rowData]="(dataStream)"
            [columnDefs]="columnDefs"
            class="side-panels-container-grid"
            [gridOptions]="gridOptionsDefault"
            (selectionChanged)="onSelectionChanged()">
        </ag-grid-angular>

how to write unit test case for columndefs in jasmine and karma? am not able to cover cellRendered return function. Getting error as below.

Error:
Cannot read properties of undefined (reading 'data') thrown

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

还不是爱你 2025-01-22 22:09:22

您在测试中是否正确模拟了网格数据?如果您只对 cellRenderer 本身进行单元测试感兴趣,您可以:

const cellRenderer = component.columnDefs.find(c => c.headerName === 'columnone').cellRenderer as any;
expect(cellRenderer({data: { upperAmount: 10 }})).toEqual('Whatever is expected');

Have you mocked the data for the grid properly in your test? If you're only interested in unit testing the cellRenderer itself you can:

const cellRenderer = component.columnDefs.find(c => c.headerName === 'columnone').cellRenderer as any;
expect(cellRenderer({data: { upperAmount: 10 }})).toEqual('Whatever is expected');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文