Я недавно начал создавать свои собственные аннотации и для спорта TDD/BDD, я бы хотел, чтобы модуль тестировал мои аннотации, чтобы создать четкую спецификацию для них. Тем не менее, поскольку аннотации - это в основном просто причудливые интерфейсы, которые, насколько мне известно, не могут быть действительно созданы напрямую, есть ли какой-либо способ, чтобы отразить единичный тест аннотации?Можно ли тестировать Java-аннотации?
ответ
Это не то, для чего я обычно писал тесты, но вы могли бы просто создать набор тестовых классов, которые используют и злоупотребляют аннотацией, чтобы проверить, что он хранит значения его членов, что он имеет правильные значения по умолчанию и т. Д.
Это будет работать только с аннотациями Runtime, которые, конечно, будут указаны на правильных объектах.
По моему опыту, сами аннотации редко достаточно интересны, чтобы гарантировать единичные тесты - обычно это код, который использует их для тестирования. Но тогда я не из 100% -ной школы по охвату кода :-)
Вы не можете протестировать их напрямую, поскольку, как вы отметили, нет ничего, что можно было бы проверить. Можно доказать некоторые вещи, хотя:
- объектов с аннотациями в коде есть какие-либо ожидаемые аннотации во время выполнения
- Значения по умолчанию было инициализированы
- аннотаций связываются с вещами, которые вы ожидаете их
Когда вы тестируете устройство, одна из вещей, которые вы можете доказать, заключается в том, что ваша реализация соответствует интерфейсу. Итак, если аннотация подразумевает определенное поведение или свойства (например, Serializable
все должно быть сериализуемо), вы хотели бы представить это и в своих тестах.
Вы можете выполнить единичный тест, если ваше определение аннотации в порядке: может ли оно применяться к действительному набору элементов, доступно ли оно во время выполнения, если значение по умолчанию правильно инициализировано? Затем, позже, модуль проверит класс, который обработает вашу аннотацию.
Аннотации имеют некоторое влияние (в противном случае было бы бессмысленно использовать их). Поэтому не проверяйте присутствие аннотации, но эффект должен иметь.
- 1. Можно ли тестировать базу общего?
- 2. Как определить, можно ли тестировать существующий класс?
- 3. Можно ли тестировать тесты vstest.console, предоставляя свойства?
- 4. Можно ли тестировать эту структуру javascript?
- 5. Должны ли «тестировать» среды «тестировать» внешние службы?
- 6. Можно ли тестировать класс, который вызывает вызовы P/Invoke?
- 7. Можно ли тестировать два новых строковых символа подряд?
- 8. Можно ли тестировать приложения Android без нажатия на приложение?
- 9. Axis 2 - Можно ли тестировать операции через веб-интерфейс?
- 10. ActionScript 2: Можно ли тестировать нажатие мыши без настройки события?
- 11. можно ли тестировать локальную машину приложения USSD перед развертыванием?
- 12. Можно ли тестировать Windows Mobile с помощью рамки робота?
- 13. Можно ли тестировать веб-приложения с помощью MonkeyTalk?
- 14. Можно ли проектировать и тестировать безопасное веб-приложение без SSL?
- 15. Можно ли тестировать приложение для нокаута с помощью Транспортатора?
- 16. Можно ли тестировать Android Auto на реальных устройствах?
- 17. Можно ли тестировать текущий тип элемента из SASS mixin?
- 18. Можно ли тестировать SQL-SQL (MS SQL Server 2005)?
- 19. Можно ли тестировать многозадачность iOS4/фоновую музыку на симуляторе?
- 20. Можно ли тестировать приложение Siebel Open UI с использованием Selenium?
- 21. Можно ли тестировать приложения PhoneGap с помощью MonkeyTalk?
- 22. Следует ли тестировать все классы?
- 23. Следует ли тестировать внутреннюю реализацию или тестировать общественное поведение?
- 24. Важно ли модулю тестировать конструктор?
- 25. Следует ли тестировать модели Django?
- 26. Следует ли тестировать классы моделей?
- 27. Следует ли тестировать ручные кодировки?
- 28. Следует ли тестировать внутренние классы?
- 29. Имеет ли смысл тестировать контроллеры
- 30. Следует ли тестировать @Entity Pojos?
Было бы здорово объединить тесты времени компиляции - например: http://code.google.com/p/javadude/ вики/аннотации. Это серьезная боль для тестирования! (У меня есть «тестовые» и «ожидаемые» копии проекта, которые я сравниваю после компиляции ...) –