Może to być oczywiste dla wszystkich innych osób, ale nie znalazłem go przez wyszukanie, więc zamieszczam tutaj zarówno pytanie, jak i jedną możliwą odpowiedź.Test widoczny w QUnit test widżetu JQueryUI
Tło:
- widget niestandardowe wykorzystaniem jQuery UI widget factory
- w widgecie, niektóre elementy się ukryte lub pokazane na podstawie innych danych/opcji.
- Tworzenie testów jednostkowych w celu sprawdzenia, czy są one poprawnie wyświetlane/ukryte.
- Pomyślałem, że moje testy jednostkowe mogą stworzyć własny element w pamięci, podobny do this old answer.
Stripped się rzeczywisty udział widget z tego przykładu:
test('show/hide', 1, function() {
var somecondition = true;
var div = $('<div/>').hide();
if (somecondition) div.show();
equal(somecondition, div.is(":visible"));
});
test nie powiedzie się, ponieważ jQuery zawsze informuje div.is(":visible")
jako fałszywe. Pomyślałem, że używanie div.css('display') == 'none'
może być obejściem problemu. Niestety działało to w Chrome, ale nie w Firefoksie.