ブールフラグが正しく設定されていることを確認するために、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に設定されているため、最初のテストは成功しますが、2番目のテストは新しいインスタンスを作成しようとします。このインスタンスでは、コンストラクターが値がブール値であることを確認します。ただし、これをデバッグすると、showControlsはtrueではなく'false'として開始されると見なされます。
手がかりはありますか?!
ありがとう