01 July 2008
Тестування SilverLight Beta 2
Обожнюю Technology Validation… Зараз роблю таке для невеличкого проекту на SilverLight.
Отже потрібно автоматично протестувати SilverLight додаток. Додаток розробляється як “товстий” клієнт, тобто він має свою клієнтську доменну модель, має свої шари, тощо. Зрозуміло що і тестування повинно бути не тільки для інтерфейсу, а для “бізнес” логіки(а в моделі її багато).
Одразу виявилось що зараз немає можливості використовувати звичні методи так фреймворки. Фреймворки просто не хочуть рефернситися в SilverLight.
Пошукавши рішення, натрапив на Source Code and Unit Tests for Silverlight 2 Beta 1 Controls, окрім коду контролів, там є ще 2000 тестів. І якось вони працюють. Далі знайшов - Unit Testing with Silverlight, від Scott Guthrie, який і розповідає що і як.
Нажаль зараз вже Beta 2, і саме для Beta 2 такого пакунку ще немає. Але я всеж таки вирішив спробувати.
Додав тестовий проект з цього пакету, виправив рефернси, видалив непотрібні тести, додав свій тест, спробував зібрати проект. Одна помилка!
В App.xmla.cs :
[code language=”C#”]
this.RootVisual = UnitTestSystem.CreateTestPage(this);
[/code]
Error 1 Cannot implicitly convert type 'System.Windows.DependencyObject' to 'System.Windows.UIElement'. An explicit conversion exists (are you missing a cast?)
Схоже що в Beta 1 RootVisual приймало DependencyObject, а тепер UIElement.
Наразі CreateTestPage і так повертає UIElement, а отже фікс дуже легкий.
[code language=”C#”]
this.RootVisual = (UIElement)UnitTestSystem.CreateTestPage(this);
[/code]
І вуаля..
Ще не знаю що з цього буде на білд сервері, але вже щось є ;), це зажди добре.
Додатково, стаття Unit Testing with Silverlight 2 від Jeff Wilcox розповідає більш детально як зробити тестовий проект, та надає посилання на вже існуючі шаблони для проектів та тестів.
Вчу українську, багато працюю. Цікавлюсь моделюванням небезпек. Більшість часу витрачаю на .Net.