我们使用了带有 HTML5 和 JSON 文件的 Kendo UI。对于单元测试,编写了 Jasmine 测试用例。当应用剑道小部件以获得更多控件时,但第二个未定义。
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 个规范的顺序,那么第一个将被执行。即网格将变为 Undefined 并且 $Phone 将在更改测试用例的顺序后包含一个值。第一个case写在Load()执行成功后,第二个case失败。
最佳答案
在剑道中,如果您两次加载小部件,那么 mask 将被移除。 因此,在加载时检查是否应用了屏蔽。
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
关于javascript - Jasmine 测试用例的剑道 UI 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42438268/