140 likes | 265 Vues
This guide provides a comprehensive overview of unit testing your Silverlight applications using the Silverlight Unit Testing Framework. It covers essential topics such as setting up your testing environment, basic and asynchronous unit tests, and the principles of Test Driven Development (TDD). You'll learn the fundamentals of creating unit tests with MSTest and see practical examples like testing a simple calculator and user interface elements in a game controller scenario. Perfect for developers looking to enhance their Silverlight testing skills!
E N D
Unit Testing your Silverlight Applications Using the Silverlight Unit Testing Framework By, Ben Dewey Senior Software Developer Tallan, Inc. ben@bendewey.com http://bendewey.com/blog http://twitter.com/bendewey
Assumptions • Basic knowledge of • Silverlight • Unit Testing • Nice to have knowledge of • MSTest
Overview • What is Testing/TDD • Setting up the Silverlight Unit Testing Test Harness • Basic Unit Test • Asynchronous Unit Tests • Questions
Preface • Unit Testing (MSTest) [TestMethod] publicvoidCan_AddNumbers() { // Arrange var calculator = newCalculator(); // Act var result = calculator.Add(1, 2); // Assert Assert.AreEqual(3, result); } • Test Driven Design (TDD) • Testing first and allowing your tests/requirements to drive your design
April 2010 Silverlight Toolkit • http://silverlight.codeplex.com
Setting up the Test Harness • Add Project • Silverlight Unit Testing Applications
Setting up the Test Harness • Add References • Microsoft.Silverlight.Testing • Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight • Modify App.xaml.cs private voidApplication_Startup(object sender, StartupEventArgs e){RootVisual = UnitTestSystem.CreateTestPage();}
Asynchronous Unit Tests [TestClass] public classMainPageTests : SilverlightTest { [TestMethod, Asynchronous] public voidCan_ShowHide_Windows() { // Arrangevar controller = new GameController();varmainPage = new MainPage(controller);this.TestPanel.Children.Add(mainPage);varstartWindow = mainPage.FindName("StartWindow") asUIElement;varendWindow = mainPage.FindName("EndWindow") asUIElement;EnqueueDelay(500);EnqueueCallback(() => { // Actcontroller.ShowStartScreen = false; // AssertAssert.AreEqual(Visibility.Collapsed, startWindow.Visibility);Assert.AreEqual(Visibility.Collapsed, endWindow.Visibility); });EnqueueDelay(500);EnqueueTestComplete(); } }
Links • http://silverlight.codeplex.com • http://www.jeff.wilcox.name/ • Jeff Wilcox – Creator of SUT
Microsoft Design Toolbox http://microsoft.com/design/toolbox
Thank You By, Ben Dewey ben@bendewey.com http://bendewey.com/blog http://twitter.com/bendewey