Reputation: 47910
Can I use TDD for gui application? How to do it.
Upvotes: 19
Views: 8857
Reputation: 17969
The answer which has evolved over the last few years is, you don't apply TDD to the GUI, you design the GUI in such as way that there's a layer just underneath you can develop with TDD. The Gui is reduced to a trivial mapping of controls to the ViewModel, often with framework bindings, and so is ignored for TDD.
This is known variously as the Presentation Model (Fowler) the Model-View-ViewModel and DataModel-View-ViewModel architecture.
This approach removes the GUI layer from TDD and unit testing. It does not mean the GUI is never tested but just acknowledges that it is not cost effective to pursue automated GUI testing, particularly as part of TDD. Integration and user testing should cover the GUI.
Josh Smith's 2009 WPF article is a detailed explanation of MVVM with some testing.
More recently, Houssem Dellai's 2016 video Creating Unit Tests for Xamarin Forms Apps shows a XAML UI with bound ViewModel and walks through creating a unit test project
Upvotes: 33
Reputation: 3342
Chad Myers has a nice walk through testing the controller:
http://www.chadmyers.com/Blog/archive/2007/11/27/tdd-with-asp.net-mvc-3.5-extensions.aspx
Upvotes: 1
Reputation: 39907
Why not. Here is a good article, from object mentor.
Found another blog post, TDD - Introduction to Moq. Its related to C# and VB.NET.
Checking out Myth and Misconception regarding TDD is a must.
Here is a book related to .NET, TDD in Microsoft .NET.
Upvotes: 5