Definition for Unit Testing
In computer programming, unit
testing is a method by which individual units of source code are tested to
determine if they are fit for use. A unit is the smallest testable part of an
application. In procedural programming a unit may be an individual function or
procedure. (Source: en.wikipedia.org/wiki/Unit_testing).
How to use LINQ in unit testing
OK, For a unit testing we require
test data. In VSTS (Visual Studio Team System), test data can be acquired using
following methods.
- Using a Database
- Using XML and LINQ
I am going to do a walk through
on second part i.e. Using XML and LINQ. XML files are quite handy and always
liked by developers due to its readability, flexibility etc. But mean time it
comes with an additional over head of traversing XML file and use the data.
Normally we need to use XML parser to read XML files, then traverse thorough
elements, find it and then use it. Lot of
additional coding, ha...
But LINQ made this step very
easy. Let's see how it works. I will explain through some sample coding.
Before talking about that,
if you need to know how to create unit
test class in your application, please refer MSDN
http://msdn.microsoft.com/en-us/library/ms182532.aspx.
OK, Let back to our topic. I will
explain in three steps.
Step 1: First use
following namespace in your unit test class file.
using System.Linq;
using System.Xml;
using System.Xml.Linq;
Step 2:
Now we need to load the element
from file. We can use XElement.Load(path) to load the XML data from file.Code
sample which will fetch the complete XML data to this variable
XElement testDataFromFile =
XElement.Load(Path);
Step 3:
Below line of code will extract
contents of specific elements to the varible. Here LINQ is so flexible and easy
that you can query based on element name and you will get the data. So easy, is
it? I love this.
var
RSAContracts = from r in testDataFromFile.Elements("RSAContract")
select r;
foreach (var contract in RSAContracts)
{
if
(contract.Element("TestType").Value == "SuccessPath")
{
//Extract the data and fill it to
object for testing. ………..
}
}
Advantage of using XML files will be
- You can extend the test cases any point of time.
- Maintainability will be easy. If you are using
Database, then you need to create tables, accessing them etc.
Happy programming!!!!