我知道是(“:visible”)如果父母是不可见的,将返回false,所以我知道为什么我写的测试失败了。我的问题是如何解决这个问题。
测试:
QUnit.module("updateLabel", function() {
QUnit.test("true value", function(assert) {
var key = "exchangestatus";
var value = true;
var element = $("#" + key + "-" + value);
assert.ok($(element).is(":hidden"), key + "-" + value + " should be hidden before updating");
MyCompany.updateLabel(key, value);
assert.ok($(element).is(":visible"), key + "-" + value + " should be visible after updating");
//THE ABOVE FAILS!
});
});
html:
这个标签位于一个div中,它位于一个div中,它处于一个div中,它位于div中... html有太多公司特定的东西,所以我省略了它,但这个html是深层嵌套的标签。
<label type="label" value="connected" name="ExchangeStatus" id="exchangestatus-true" class="control-label label-btn-success fusionconnect" style="padding: 8px 12px;">{{si011}}</label>
正在测试的JavaScript:
updateLabel: function(key, value) {
var selectInput = "#" + key + "-" + value;
if (value) {
$(selectInput).show();
$("#" + key + "-false").hide();
} else {
$(selectInput).show();
$("#" + key + "-true").hide();
}
}
正如我在第一句中所说,我的断言失败了,因为它的父母不可见。如何检查该特定元素是否已调用.show();不管它是否因为其父母的可见性而实际可见。