我们使用了带有HTML5和JSON文件的Kendo UI。对于单元测试已经编写了Jasmine测试用例。当应用了kendo小部件以获得更多控件时,但第二个是未定义的。
describe("Test cases", function () {
beforeAll(function (done) {
//Called Load method of a page
});
it("Test Grid data", function (done) {
var grd = jq("#grdOne").data("kendoGrid");
var row = grd.dataSource.data();
//tested row
done();
});
it("Test Phone number", function (done) {
var $Phone = jq("#txtPhone").data("kendoMaskedTextBox");//$Phone is Undefined
done();
});
});
如果我正在更改2个规范的序列,那么第一个规范将被执行。即网格将变为未定义,并且$ Phone将在更改测试用例的序列后包含值。第一种情况是在Load()成功执行后写的,第二种情况是失败的。
答案 0 :(得分:1)
在kendo中,如果您加载小部件两次,则将删除屏蔽。 因此,在加载时检查是否应用了掩蔽。
it("Test Phone number", function (done) {
var $Phone = jq("#txtPhone");
if(!$Phone.data("kendoMaskedTextBox")) {
$Phone.kendoMaskedTextBox({
mask: "000-00-0000"
});
}
$Phone.data("kendoMaskedTextBox").enable(true);
}
);
有关详情,请查看链接: http://docs.telerik.com/kendo-ui/troubleshoot/troubleshooting-common-issues