Skip to main content

Xamarin UI Tests – Deep dive Part 1

Intro

As the title may describe this is the first of the series of articles that will cover the UI Test of Xamarin in a deep dive, we will start simple and then dig deeper as we go.
Since this is very well the first of the series, it will mostly cover up the architecture and the testing technique that Xamarin UI Tests uses.


The Technology


Xamarin UI Test is an automation testing framework similar to selenium, Watir, Watin (.net), Robot and Sikuli, if you have used BDD (Behavioral Driven Development) or a more advanced TDD (Test Driven Development) approach at least you must have come across one of these frameworks, and in that perspective comes Xamarin UI Testing as an automation framework designed specifically for Xamarin Automation testing,
For starter Xamarin UI Tests was not build from scratch, instead it was built on top of another UI Automation testing framework that is targeting android and iOS sepecifically which is Calabash, I have to say that this choice was made wisely as of not only that Calabash does have the proper support and documentation nevertheless that superior support it gives to mobile platforms compared with Libraries such as TouchTest, UIAutomation, MonkeyTalk ‘Previously FoneMonkey’, in order to check more about this please refer to this blog, though it is written by one of calabash team members http://blog.lesspainful.com/2012/03/07/Calabash-iOS/
However now the calabash is part of the Xamarin, as Xamarin already acquired the framework for themselves and then set out to make their Xamarin Test cloud, won’t talk about that now but I will sure have that in upcoming posts where you can upload your tests to the test cloud to be ran on pre-selected devices.

The BDD Mindset in Xamarin UI Test


Cucumber

If you are going for tests then you are going first, this a saying that defines first things first about TDD, But TDD has been sometimes misguiding people to shape their code instead of shaping their business into code, so a certain need for a step towards the business, built on top of the TDD itself, and thus Comes BDD (Behavioral Driven Development), it takes TDD to a further business level, in which Developer and business owner can meet and write tests together in a language that can be understood by both the business people with all that money and those nerdy mombo jambos they call developers, and thus comes the idea of converting natural language like English statements into actual code, and of course the tools that will make this happen, For Xamarin since it is Calabash based Cucumber has been tightly coupled with it, if you have used BDD Before and you happen to come from a .Net development background such as myself you would probably know Specflow, which serves the same exact purpose as cucumber.

Whats Next?

In the Upcoming article we will go over the Xamarin UI tests functionality and how we can do a basic UI test on iOS and Android.   


Comments

Popular posts from this blog

Xamarin Forms Core components Part 1 Dependency Service

Intro Xamarin Forms is a collection of controls that can be used and rendered on multiple platforms, and in order of them to function as they are suppose to, they do need a set of core components that defines the way these controls, in how they are created, how they are rendered to how they are used, of course every platform is different and sometimes a platform specific extra configuration is required, specially that there are so many differences between the different platforms in matter of design, user experience and operating system behavior. So one of the core components of  Xamarin  Forms is the Dependency Service, and by the name suggest it does act as the dependency resolver for all forms controls, if you are not familiar with IOC " I nversion O f C ontrol" and Dependency Injection please refer to the link for a quick intro i wrote a while ago on IOC  IOC Part 1 - Inversion of control Principle .  And as of such the Dependency Service is the concrete inboxe

Xamarin Forms: XAML Creating Custom Controls The MVVM Way

Intro For a growing UI page there always comes a need to create sub views that can be used inside a bigger view, and for that we need custom controls, which are controls that are derived either from a layout or a simple view which is the basic control for almost any UI component in Xamarin forms, and therefore for a start i will use that as an example. And in such example we will create a custom control with a set of bindable properties and explain how they work, also how to add an event that can also be bound to Commands Lets Create the control  I have just went ahead and created a custom control that inherits from Xamarin.Forms.View and have some properties such color and checked all properties to be bound to by the ViewModel serving as the datacontext of the this control. here is the code below using System; using Xamarin.Forms; namespace UserControls { public class CustomView : View { public Color Color { get ; set ;

Windows Phone 8 - Application bar command binding MVVM

This is a short post in which i will explain how on Windows phone 8 to bind the application bar button or menu item, first this is only a fix for the  BindableApplicationbar  which supports windows phone 7 only, i just made it support windows 8 no features added or anything. i have uploaded the dll file here so it can be accessible easily here is the link to download http://sdrv.ms/RApUal now that you got the link lets check how we gonna use it you can refer to BinableApplicationbar  or check out the code here that i actually used in my app and i already read it there !  Add a reference to the BindableApplicationBar library here is the link again  http://sdrv.ms/RApUal Add XML namespace declaration in your page's XAML: xmlns : bar ="clr-namespace:BindableApplicationBar;assembly=BindableApplicationBar" Set Bindable.ApplicationBar property on your page code as in the snippet below: < phone : PhoneApplicationPage >     …     < bar : Bindable.App