Вам нужно настроить таргетинг на элемент a
, чтобы вы могли использовать дополнительную обертку в обеих ситуациях и настроить CSS, как показано ниже:
Я также исправил недопустимый HTML, поскольку вам разрешено используйте li
только в качестве дочернего элемента ul
ul {
list-style-type: none;
}
.dropdown {
display: inline-block;
width: 100px;
height: 25px;
background-color: black;
color: white;
padding: 20px;
text-align: center;
font-size: 20px;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f1f1f1;
padding: 12px 16px;
}
.dropdown-content a {
text-decoration: none;
}
.dropdown-content a:hover {
text-decoration: underline;
}
.dropdown:hover .dropdown-content {
display: block;
}
<ul>
<li class="dropdown">list item 1
<div class="dropdown-content">
<a href="" target="_blank">link 1</a><br>
<a href="" target="_blank">link 2</a>
</div>
</li>
<li class="dropdown">list item 2
<div class="dropdown-content">
<a href="" target="_blank">link 1</a>
</div>
</li>
</ul>
Вы можете иметь тесты для действий дб, но стараться избегать его, если это возможно, иначе:
Это может также быть запах кода, что Ваши классы не разделяют связанную с дб работу от другой работы, например, бизнес-логику. Однако это не может, мы иметь тест платформы, который проверяет, что автоматически сгенерированный сценарий SQL возвращает ожидаемое увеличенное значение идентификационных данных после вставки новых данных, AFAIK, там не способ протестировать тот этот код, работает кроме выполнить его против дб. Вы могли дразнить его или просто предположить, что, если SQL соответствует тому, что Вы ожидаете затем, что это в порядке, но мне не нравится то предположение, так как так много другого кода полагается на него.
В зависимости от Вашей среды тестирования необходимо отметить эти тесты как связанную [Базу данных], позволив Вам разделить их от других тестов.
это - больше интеграционный тест, чем модульный тест.
то, что я делаю в таких случаях, - то, что я создаю тест non-persisting-base, который загружает данные, необходимые для тестов в тестовом дб, и затем выполняет модульные тесты. после этого это располагает текущую транзакцию, таким образом, никакие данные не хранятся.
самая большая проблема здесь состоит в том, что, если у Вашего клиента есть отказ - Вы не можете запустить такие тесты... другая проблема состоит в том, что данные в Вашем тестовом дб будут reseted каждый раз, Вы запускаете такие тесты.
Я соглашаюсь с @Gambrinus. В целом это почти невозможно к модульному тесту слой данных; лучшее, которое можно сделать, обеспечивают сильный интерфейс слоя данных и насмешку против этого в бизнес-слое, затем сохраняют тесты качества данных для интеграционного тестирования.
Я видел попытки насмешки инструментов ORM (этот для LINQ развлекает меня), но они не тестируют правильность запроса, только что запрос был записан в способе, которым тестер думал, что это должно быть записано. Так как тестер обычно является тем, пишущий запрос против ORM, это не обеспечивает значения вообще.
Тесты для кода, который сохраняет к и читает из баз данных, называют Интеграционными тестами. Можно использовать генератор данных для генерации данных тестирования до выполнения интеграционных тестов. Интеграционные тесты не должны выполняться так же часто как модульные тесты.
Это забавно, у меня есть та же проблема о моем проекте. Насмешка является, вероятно, хорошим способом пойти, но я не попробовал это. Обычно мы заполняем наши таблицы с данными. Я пишу модульные тесты, которые осуществляют возможности CRUDL данного класса. Таким образом, если у меня есть класс Человека, модульные тесты включают, создают, читают, обновляют, удаляют и перечисляют. Эти методы имеют тенденцию называть хранимые процедуры (в большинстве случаев), таким образом, это тестирует ту часть его также.
Существуют инструменты там, которые могут вывести полные лодки данных тестирования.
Генератор данных Sql от Красного Логического элемента
Сообщите нам, какой подход работал на Вас.
Попытайтесь использовать mbunit. Это - среда тестирования.NET, которая позволяет Вам заполнять базу данных в своей установке и затем откатывать изменения, которые Вы сделали к базе данных во время Ваших тестов, восстановив базу данных к ее предыдущему условию. Существует быстрая рецензия на нем здесь.