What is Code UI Testing, or more to the point what is the difference between Unit Tests and Coded UI Tests?
Unit Tests
- Tests classes and methods at the API level
- If it test a UI, it’s testing an abstraction (not quite testing the UI), UI testing has been hard
- Testing code as you built it
- We are testing in isolation
Coded UI Tests
- UI testing
- Testing a running application
- Simulates a user’s keyboard and mouse activities
- Test the application that’s pretty much done
- Integration testing
Looking at the layers in your application
- User Interface
- Presentation (MVC/MVVM)
- Domain Model / Service Layer
- Repository / Data Access
- The Relational Database (Tables, Views, Stored Procedures etc)
The Coded UI tests are only interested in the User Interface, and Unit tests deal with everything else.
So
Unit tests test your API’s
Coded UI Tests test your running User Interfaces
Support for Code UI
Operation Systems
- Windows 7
- Windows 8
- WIndows Server 2008 R2
- Windows Server 8
Web Applications in Internet Explorer 8, 9 and 10
Windows application
- Windows Form 2.0 and higher
- WPF 3.5 and higher
Dynamics CRM web client
Partially Supported
- Windows Win32
- Dynamics (Ax) 2012
- MFC
- Citrix / Terminal Services
- SharePoint
- Power Builder
For a complete list go to: http://msdn.microsoft.com/en-us/library/dd380742(v=vs.110)
No Support for Code UI
Browsers
- Internet Explorer 7
- Internet Explorer 8
- Chrome
- Firefox
- Opera
- Safari
Plugins
- Silverlight
- Flash
Office Cleint Applications
Java
SAP
Structure of a Coded UI Test
The Test Fixture Class
- [CodedUI] attribute
- Editable like any other class
UIMap.uitest
- Auto-generated XML-based “map” of your UI
- Not editable
UIMap.designer.cs
- Supporting information for the test
- Auto-generated by the recorder
- Partial class
UIMap.cs
- partial class
- Customizations and extensions to the UIMap.designer.cs
Create Coded UI Tests using the recorder
Create Coded UI Tests using MTM Action Recordings
Editing and extending Coded UI tests