Visual Studio 2010 zawiera wiele ciekawych, nowych cech. Dzisiaj zdecydowanie najbardziej urzekł mnie zaprogramowany test UI. Oto krótka prezentacja jego możliwości.
Zacznijmy od nowego projektu testów od razu z wybraniem tego jednego:
Po wybraniu tego testu i zatwierdzeniu dostajemy od razu poniższą propozycję:
Skoro rozpoczęliśmy pracę nad pusty projektem tutaj nic nie zmieniam i wybieram nagranie akcji, operacji bezpośrednio na aplikacji (pierwsza opcja). Na dole ekranu powinno się pojawić okienko pomocne w nagraniu:
Wybieram nagranie i z menu start otwieram systemowy kalkulator:
Belka tytułowa upewnia, że nagrywam kroki w odpowiedniej aplikacji. Wybieram przycisk “2” potem “+” potem “2” i nastepnie “=”. Wynik jest oczywisty. Pauzuję nagranie. Drugi przycisk od lewej w oknie Coded UI Test Builder to podgląd nagranych kroków. Wynik poniżej:
Jak widać wszystko się poprawnie nagrało, włącznie z bonusowym PrintScreen, koniecznym, abyście i wy mogli zobaczyć powyższy obrazek. Następny krok to wybór ostatniego przycisku czyli generowanie kodu do powyższego testu:
Powstaje z tego kod, którego najistotniejszy (przynajmniej na początku) fragment przeklejam poniżej:
[CodedUITest]
public class TestIfCalcAddsWell
{
public TestIfCalcAddsWell()
{
}
[TestMethod]
public void CodedUITestMethod1()
{
// To generate code for this test, select "Generate Code for Coded UI Test"
// from the shortcut menu and select one of the menu items.
this.UIMap.CalculatorIsAddingNumbers();
}
……
}
Metoda z UIMap.CalculatorIsAddingNumbers() wygląda następująco:
public void CalculatorIsAddingNumbers()
{
#region Variable Declarations
WinText item0Text = this.CalculatorWindow.Item0Window.Item0Text;
WinButton item2Button = this.CalculatorWindow.Item2Window.Item2Button;
WinButton addButton = this.CalculatorWindow.AddWindow.AddButton;
WinButton equalsButton = this.CalculatorWindow.EqualsWindow.EqualsButton;
#endregion
// Launch '%SystemRoot%\System32\calc.exe'
ApplicationUnderTest calculatorWindow = ApplicationUnderTest.Launch(this.CalculatorIsAddingNumbersParams.CalculatorWindowExePath, this.CalculatorIsAddingNumbersParams.CalculatorWindowAlternateExePath);
// Type '{PrintScreen}' in '0' label
Keyboard.SendKeys(item0Text, this.CalculatorIsAddingNumbersParams.Item0TextSendKeys, ModifierKeys.None);
// Click '2' button
Mouse.Click(item2Button, new Point(18, 18));
// Click 'Add' button
Mouse.Click(addButton, new Point(23, 14));
// Click '2' button
Mouse.Click(item2Button, new Point(18, 11));
// Click 'Equals' button
Mouse.Click(equalsButton, new Point(17, 37));
}
Fajne prawda? Teraz taki test możecie wykonać i Visual Studio uruchomi calc.exe i zasymuluje wszystkie kroki. Możecie ten test wykorzystać w Load Testach i sprawdzić jak system się zachowa gdy 10 kalkulatorów na raz spróbuje dodać 2+2 (albo wykonać bardziej poważny test waszej aplikacji via Citrix, itd.). Możecie dodać “Asserty” i sprawdzić czy faktycznie pole wynikowe zawiera “4”.
Visual Studio 2008 miało podobny test, ale do zastosowania tylko i wyłącznie dla aplikacji WWW. Ten test wspiera projekty Web, Win Forms oraz WPF.