使用 Jasmine 模拟 KendoUI 组件

Mock KendoUI component using Jasmine

我有一个 kendo 组合框。 在其中一种方法中,我从组合框中获取值。 是否可以使用 jasmine.

模拟 kendoComboBox
 var $categoryComboBox = $('#Category').data('kendoComboBox');
 var selectedCategory = categoryComboBox.dataItem($categoryComboBox.select());

我的 jasmine 测试用例类似于

var combo = spyOn($.fn, "data").and.returnValue(dummyElement);
                        var selectedCat = spyOn($.fn, "select").and.returnValue("1");
                        var selectedItem = spyOn(combo, "dataItem").and.returnValue({ 'ID': '1', 'ClaimTypeCode': 'WW' });

我不确定我应该指定什么作为 dummyElement 才能正常工作。

谢谢

听起来您还没有为单元测试构建 JavaScript。您应该将 DOM 与代码分开,这样您就可以独立于 DOM.

测试代码

看看 KendoUI MVVM library,因为这允许您设置视图模型(它对 DOM 一无所知),将其绑定到 HTML 元素和 Kendo 小部件,让您自由地轻松测试视图模型。

您现在 JavaScript 的设置方式将使单元测试变得极其困难。我唯一能想到的就是将从 Kendo 小部件获取值的代码与使用该值执行某些操作的代码分开,然后测试后者,传入您要测试的值。仍然不是构建它的正确方法,但它现在可以工作。