Angular 6中jQuery数据表的回调方法的单元测试

时间:2019-10-10 09:33:09

标签: jquery angular unit-testing datatables karma-jasmine

是否有使用业力/茉莉来测试Angular 6中jQuery数据表的回调方法的方法?

我想测试以下方法的页脚回调,但无法找到任何方法。我是单元测试的新手,在网络上找不到任何有用的信息。

 initializeBugIndexPageSetting() {
    let self = this;
    $('example').DataTable({
        'footerCallback': function (row, data, start, end, display) {
            const api = this.api();
            // Remove the formatting to get integer data for summation
            const intVal = function (i) {
                if (i === 'N/A') {
                    return 0;
                }
                return i * 1;
            };
            // Total over this page
            const pageInProgrssToResolved = api
                .column(14, { page: 'current' })
                .data()
                .reduce(function (a, b) {
                    return intVal(a) + intVal(b);
                }, 0);
            const pageCount = api
                .column(5, { page: 'current' })
                .data().count();
           // Update footer           
            $(api.column(14).footer()).html((pageInProgrssToResolved / pageCount).toFixed(2));
        }
    });
}

几乎没有帮助和指导。

1 个答案:

答案 0 :(得分:1)

我建议将回调的内容放在单独的方法中,因为此新功能非常易于单元测试。

作为第二个测试,我建议通过在新函数上添加一个茉莉花间谍程序来测试initializeBugIndexPageSetting函数,然后在footerCallback中调用它,您可以仅检查它是否已被(.toHaveBeenCalledTimes(1)调用initializeBugIndexPageSetting函数后进行监视)。

您可以在此处找到有价值的教程:https://scriptverse.academy/tutorials/jasmine-createspy-createspyobj.html