Модульное тестирование Silverlight - Как проверить базовые типы пользовательского интерфейса? - PullRequest
0 голосов
/ 08 апреля 2009

Вкратце: Как проверить тип пользовательского элемента управления пользовательского интерфейса во время модульного теста Silverlight?

Подробно: Я загружаю дочерние представления в ContentControl в родительском представлении. Во время тестирования я хочу убедиться, что правильный вид был загружен в нужное время. Мои представления находятся в отдельных проектах, и я не хочу добавлять ссылку на эти сборки в свой тестовый проект для родительского представления (слишком тесно связаны).

Вот где я застрял:

[TestMethod]
[Asynchronous]
[Description("Test to confirm that upon initial class creation, the login view is loaded as the default content for the TaskRegion.")]
public void Shell_Initialisation_LoginViewIsLoadedByDefault()
{
   Shell shell = new Shell();

   //helper method from Justin Angels example 
   WaitFor(shell, "Loaded");

   TestPanel.Children.Add(shell);

   Shell_ViewModel viewModel = shell.DataContext as Shell_ViewModel;

   EnqueueCallback(() => Assert.IsTrue(viewModel.TaskRegionContent is **How do I reference my control type**));

   EnqueueTestComplete();
}

Должен ли я использовать насмешку?

(WaitFor - это вспомогательный метод, предоставляемый Джастином Ангелом )

1 Ответ

0 голосов
/ 06 августа 2009

Как насчет использования GetType ()? Затем вы можете использовать различные методы в экземпляре Type, чтобы проверить, является ли он экземпляром типа или унаследованным от типа.

Assert.IsInstanceOfType(viewModel.TaskRegionContent, typeof(Control))

Где "Контроль" - это тип интереса, который вы хотите проверить.

Смотри также: http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.assert.isinstanceoftype(VS.80).aspx

...