2013-06-03 3 views
3

Мне сложно писать qUnit тесты для проекта, который использует Twitter-бутстрап. Когда модаль порождается, он помещает наложение вне qunit-fixture, поэтому, когда следующий тест выполняется, наложение не удаляется. Кто-нибудь сталкивается с этой проблемой?qUnit: Twitter Модификации Bootstrap за пределами qunit-fixture

Нажмите событие (привязка к jsfiddle требует встроенного кода, пожалуйста, смотрите на скрипке):

$("#qunit-fixture").on('click', '#click', function() { 
    $('#error').modal('show'); 
}); 

Пример: http://jsfiddle.net/Gbyza/4/

Обратите внимание, как экран темнеет с каждым испытанием? Это наложение не сбрасывается с каждым последующим тестом.

Еще одна проблема заключается в

test("Error Dialog ", function() { 
    $("#click").click(); 
    equal($("#error").is(":visible "), true, "Error dialog spawned.") 
}); 

не удается. Не знаете, почему диалог не появляется. Любое понимание было бы оценено.

+0

диалог не отображается как-то, потому что он входит в # QUnit-арматуре DIV, который будет удален в конце каждого теста. – vcarel

ответ

1

Bootstrap добавляет div в конец тела для управления фоном. Он остается после выполнения теста, потому что он находится вне div # qunit-fixture.

<div class="modal-backdrop fade in"></div> 

Я не вижу никакого другого решения, чем удаление задник с помощью соответствующей опции:

$('#error').modal({ 
    backdrop: false 
}); 

или:

data-backdrop="false" 

Я не думаю, что это должно быть большим потому что вы, вероятно, захотите проверить свой код, а не модальность модальных эффектов.

См: http://jsfiddle.net/Jv6cM/

Смежные вопросы