JUnit: как не избежать “никаких выполнимых методов” в тесте utils классы

используется для определения последовательности, которой следуют пользователи, когда они используют клавишу Tab для перемещения по странице. По умолчанию естественный порядок табуляции будет соответствовать порядку источника в разметке.

Атрибут содержимого tabindex позволяет авторам контролировать, должен ли элемент быть ориентируемым, должен ли он быть доступен используя последовательную навигацию по фокусу, и каков должен быть относительный порядок элемента для целей последовательной навигационной навигации. Имя «индекс вкладки» происходит от общего использования клавиши «табуляция» для перемещения по элементам, которые можно сфокусировать. Термин «табуляция» относится к перемещению вперед через фокусируемые элементы, которые могут быть достигнуты с помощью последовательной навигации фокусировки. Рекомендация W3C: HTML5 Раздел 7.4.1 Последовательная фокусировка и атрибут tabindex

blockquote>

tabindex начинается с 0 или любого положительного целого числа и увеличивается вверх. Обычно считается, что значение 0 избегается, потому что в более старых версиях Mozilla и IE tabindex начинается с 1, переходите к 2 и только после того, как 2 будет идти до 0, а затем 3. Максимальное целочисленное значение для tabindex 32767. Если элементы имеют одинаковый tabindex, то tabindex будет соответствовать порядку источника в разметке. Отрицательное значение удалит элемент из индекса табуляции, поэтому он никогда не будет сфокусирован.

Если элементу присваивается tabindex из -1, он удаляет элемент, и он никогда не будет фокусироваться, но фокус может быть присвоен элементу программным способом с помощью element.focus().

Если вы укажете атрибут tabindex без значения или пустого значения, он будет проигнорирован.

Если кнопка disabled установлен на элементе, который имеет tabindex, элемент будет проигнорирован.


Если параметр tabindex установлен в любом месте страницы независимо от того, где он относится к остальная часть кода (это может быть в нижнем колонтитуле, области содержимого, где-когда-либо), если есть определенный tabindex, тогда порядок табуляции начинается с элемента, которому явно назначается наименьшее значение tabindex выше 0. Затем он будет циклически проходить через определенные элементы и только после того, как явные элементы tabindex будут пропущены, вернется ли он в начало документа и выполнит порядок естественных вкладок.


В ЧАС TML4 spec только следующие элементы поддерживают атрибут tabindex: , , , , , и . Но спецификация HTML5 с учетом доступности позволяет назначать все элементы tabindex.

-

Например

является как

, потому что независимо от того, что все они назначены tabindex="1", они все равно будут следовать одному и тому же порядку, первый первый, а последний последний. Это тоже то же самое.

, потому что вам не нужно явно определять tabIndex, если это поведение по умолчанию. A div по умолчанию не будет настраиваться, теги anchor будут.

113
задан LiorH 23 March 2009 в 08:09
поделиться

4 ответа

Принятие Вас управляет шаблоном, используемым для нахождения тестовых классов, я предложил бы изменить его для соответствия *Test, а не *Test*. Тот путь TestHelper не будет подобран, но FooTest будет.

47
ответ дан Jon Skeet 5 November 2019 в 09:24
поделиться

Что относительно того, чтобы добавить пустой метод тестирования для этих классов?

public void avoidAnnoyingErrorMessageWhenRunningTestsInAnt() {
    assertTrue(true); // do nothing;
}
4
ответ дан akuhn 5 November 2019 в 09:24
поделиться

Аннотируйте свои классы утилит с помощью @Ignore. Это заставит JUnit не пытаться запускать их как тесты.

140
ответ дан 24 November 2019 в 02:37
поделиться

Мой конкретный случай имеет следующий сценарий. Наши тесты

public class VenueResourceContainerTest extends BaseTixContainerTest

все расширяются

BaseTixContainerTest

и JUnit пытался запустить BaseTixContainerTest. Бедный BaseTixContainerTest просто пытался настроить контейнер, настроить клиента, заказать пиццу и расслабиться... блин.

Как упоминалось ранее, вы можете аннотировать класс с

@Ignore

Но это привело к тому, что JUnit сообщил, что тест пропущен (в отличие от полного игнорирования).

Tests run: 4, Failures: 0, Errors: 0, Skipped: 1

Это меня раздражало.

Поэтому я сделал BaseTixContainerTest абстрактным, и теперь JUnit действительно игнорирует его.

Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
81
ответ дан 24 November 2019 в 02:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: