我一直在为我的 Dojo 小部件创建一些测试,以检查布尔标志是否设置正确。但是,我发现由于我更改了构造函数以传入对象,因此之前运行的测试似乎会影响后续测试。
我尝试在拆卸方法中破坏小部件,但无论我做什么,该值仍然存在。
谁能建议我可能做错了什么?
我的小部件代码:
var showControls = true;
return declare([WidgetBase, TemplatedMixin, _WidgetsInTemplateMixin], {
templateString: template,
constructor: function (params) {
this.showControls = (typeof params.showControls === "undefined" || typeof params.showControls != "boolean") ? this.showControls : params.showControls;
}
});
我的测试课是:
var customWidget;
doh.register("Test controls", [
{
name: "Test controls are not visible when set in constructor",
runTest: function() {
var params = { showControls: false };
customWidget = new CustomWidget(params);
doh.assertFalse(customWidget.getShowControls());
}
},
{
name: "Test controls are visible when set in constructor with string instead of boolean",
runTest: function() {
var params = { showControls: "wrong" };
customWidget= new CustomWidget(params);
doh.assertTrue(customWidget.getShowControls());
}
}
]);
因此,第一个测试通过,因为 showControls 设置为 false,但是第二个测试尝试创建一个新实例,构造函数将在其中检查该值是否为布尔值。然而,当我调试它时,它认为 showControls 以“假”开始,而不是真的。
有什么线索吗?!
谢谢