У меня есть несколько пользовательских элементов управления (какие-то фреймы для управления контентом и макетом, например панель переноса), и я хотел бы написать для них модульные тесты. Трудно найти какие-либо хорошие примеры, кроме набора инструментов управления Silverlight, в котором есть несколько вспомогательных классов для выполнения модульных тестов, и это довольно сложно. Для классов MVVM легко писать тесты, потому что они не используют систему зависимостей SL и инфраструктуру.
Вопросы:
- как выполнить модульное тестирование DepedenyProperty, что мне нужно для тестирования
- как проверить прикрепленное свойство
- тестировать привязки с темой или UserControl, такие как простая привязка содержимого текстового блока или привязка команды / события в MVVM с UserControl
- что еще я проверяю в своих пользовательских элементах управления, кроме моей бизнес-логики
- любой хороший учебник для выполнения тестов, подобных тем, что есть в контрольном наборе
Как начать? Является ли SL control toolkit единственным вариантом обучения?
Для тестирования инфраструктуры я использую один из контрольного инструментария, а для непрерывной интеграции на сервере сборки TFS я планировал использовать Statlight (из codeplex). Любой совет по этому поводу?
Edit:
После некоторых исследований я смог написать несколько базовых тестов для своего пользовательского элемента управления. Я использовал вспомогательные классы из Control Toolkit, который содержит множество предопределенных тестов для определенного типа настраиваемого элемента управления (панели, элементы управления содержимым и т. Д.) И имеет методы для тестирования функциональных возможностей инфраструктуры, таких как визуальные состояния и детали. Жаль, что нет руководства или учебника, потому что там содержится много кода, и требуется некоторое время, чтобы понять, как использовать его в вашем проекте.
Даже мой пользовательский элемент управления наследуется от ContentControl, и существует ContentControlTest, от которого я могу наследовать для использования в моих тестах, я получил слишком много неудачных тестов. Поэтому я использовал FrameworkElementTest, который содержит около 30 тестов, плюс несколько моих собственных, и не сложно пройти их все, после выяснения, как подготовить все это (инициализация в конструкторе класса теста и использование вспомогательного класса DepedenyPropertyTest ).
Я до сих пор не знаю, что мне нужно сделать, чтобы пройти все тесты из ContentControlTest, но я только начал и углубился в весь процесс тестирования;)