Strukturen i CUITs
Alle CUITs (Coded UI Tests) som bliver oprettet via Visual Studios Coded UI Test Builder indeholder som minimum disse 4 filer:
CodedUITest1.*
UIMap.uitest
UIMap.Designer.*
UIMap.*
CodedUITest1.*
CodedUITest1-filen indeholder selve testcasen [TestMethod]:
[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.Open_TestingIT(); }
samt initiering- [TestInitialize()], der afvikles inden selve testcase TestMethod og oprydningsmetoderne [TestCleanup()], der afvikles efter testcasen er afsluttet – uanset om testen afvikles succesfuldt eller fejler:
#region Additional test attributes // You can use the following additional attributes as you write your tests: ////Use TestInitialize to run code before running each test [TestInitialize()] public void MyTestInitialize() { // Start Browser and go to web page 'http://www.testingit.dk' BrowserWindow Browser = BrowserWindow.Launch(new System.Uri(this.StartBrowserParams.Url)); } ////Use TestCleanup to run code after each test has run //[TestCleanup()] public void MyTestCleanup() { #region Variable Declarations BrowserWindow uICodedUITestingITInteWindow = this.UICodedUITestingITInteWindow; #endregion // Perform Close on Browser uICodedUITestingITInteWindow.Close(); }
UIMap.uitest
Denne fil indeholder alle de handlinger (UI Actions), der bliver optaget via Coded UI Test Builder’en og bliver automatisk genereret af Coded UI Test Builder’en. UIMap.iutest-filen indeholder også identifikationen til de kontroller, du benytter i applikationen, der testes på: eks. en knap, en tekst eller et link.
Filen er i sin struktur en XML-fil, men når den vises i Visual Studio bliver den vist mere læsbart:
UIMap.uitest : IU Actions:
UIMap.uitest : UI Control Map
UIMap.designer.*
UIMap.designer.*-filen bliver dannet automatisk ud fra UIMap.iutest-filen, når du benytter Coded UI Test Builder’en, og repræsenterer kodesiden af testen. UIMap.designer-filen indeholder metoder og egenskaber (alle optaget via Coded UI Test Builder’en), der benyttes i selve testen (CodedUITest1.*).
Nedenstående er et eksempel på en metode fra UIMap.designer.*-filen:
public void Testautomatisering() { #region Variable Declarations HtmlHyperlink uICodedUIHyperlink = this.UIJBUnitedSiderForsideWindow.UITestingITfordikvalitDocument.UIMainnavmenuCustom.UICodedUIHyperlink; #endregion // Click 'Coded UI' link Mouse.Click(uICodedUIHyperlink, new Point(54, 17)); }
Følgende er et eksempel på egenskab-sektionen (properties):
public HtmlHyperlink UICodedUIHyperlink { get { if ((this.mUICodedUIHyperlink == null)) { this.mUICodedUIHyperlink = new HtmlHyperlink(this); #region Search Criteria this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = null; this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Name] = null; this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Target] = null; this.mUICodedUIHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.InnerText] = "Coded UI"; this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.AbsolutePath] = "/testautomatisering/coded-ui/"; this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Title] = null; this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Href] = "http://www.testingit.dk/testautomatisering/coded-ui/"; this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Class] = null; this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.ControlDefinition] = "href=\"http://www.testingit.dk/testautoma"; this.mUICodedUIHyperlink.FilterProperties[HtmlHyperlink.PropertyNames.TagInstance] = "9"; this.mUICodedUIHyperlink.WindowTitles.Add("Testing IT | – fordi kvalitet tæller……"); #endregion } return this.mUICodedUIHyperlink; } }
UIMap.*
Som udgangspunkt indeholder UIMap.*-filen ingen ting – hverken metoder eller egenskaber.
Formålet med UIMap.*-filen er, at her kan du selv kode dine egne metoder og egenskaber, som du efterfølgende kan benytte i CodedUITest1.
UIMap.* bliver ikke påvirket af Coded UI Test Builder’en.