При тестировании кода Swift, который принадлежит приложению, сначала убедитесь, что цель тестирования создает приложение как зависимость. Затем в своем тесте импортируйте приложение в виде модуля. Например:
@testable import MyApplication
Это сделает объекты Swift, которые являются частью приложения, доступными для теста.
Аннотации, прежде всего, используются кодом, который осматривает другой код. Они часто используются для изменения (т.е. украшение или обертывание) существующие классы во времени выполнения для изменения их поведения. Платформы такой как JUnit и В спящем режиме аннотации использования для уменьшения объема кода, который необходимо записать сами для использования платформ.
Oracle имеет хорошее объяснение понятия и его значение в Java на их сайте.
кроме того, действительно ли они уникальны для Java, есть ли эквивалентный C++?
нет, но VB и C# имеют атрибуты , которые являются тем же самым.
Их использование довольно разнообразно. Один типичный пример Java, @Override
не имеет никакого эффекта на код, но это может использоваться компилятором для генерации предупреждения (или ошибка), если украшенный метод на самом деле не переопределяет другой метод. Точно так же методы могут быть отмечены устаревшие.
Тогда существует отражение. При отражении типа класса в коде можно получить доступ к атрибутам и действию согласно информации, найденной там. Я не знаю примеров в Java, но в.NET, которую это используется компилятором, чтобы генерировать (de) сериализация информация для классов, определить , расположение памяти из структур и объявляет функциональный импорт из библиотек прежней версии (среди других). Они также управляют, как конструктор форм IDE работает.
РЕДАКТИРОВАНИЕ/: Атрибуты на классах сопоставимы для меток интерфейсов (как сериализуемый в Java). Однако в инструкциях по кодированию.NET говорится для не использования интерфейсов тега. Кроме того, они только работают на уровне класса, не на уровне метода.
Anders дает хорошую сводку, и здесь является примером аннотации JUnit
@Test(expected=IOException.class)
public void flatfileMissing() throws IOException {
readFlatFile("testfiles"+separator+"flatfile_doesnotexist.dat");
}
Здесь @Test
, аннотация говорит JUnit, что flatfileMissing
метод является тестом, который должен быть выполнен и что ожидаемым результатом является брошенный IOException
. Таким образом, когда Вы запускаете свои тесты, этот метод назовут, и тест передаст или перестанет работать на основе того, брошен ли IOException
.
Java также имеет Инструмент Обработки Аннотации (склонный), где не только Вы создаете аннотации, но и решаете также, как эти аннотации работают над исходным кодом.
Здесь введение.
Для наблюдения некоторого интересного материала, можно сделать с Аннотациями, проверить мои аннотации JavaBean и процессор .
аннотации, Они являются великими для генерации кода, добавляя дополнительные проверки во время сборки, и я также использовал их для платформы сообщения об ошибке (еще опубликованный - должен очиститься с боссами...).