Setup
1) Install NUnitForms
2) Create a project for your NUnit tests. Configure NUnit as normal.
3) Add references to your application project, NUnitForms, System.Windows.Forms, and any third-party controls you use on your application's forms.
4) In the test fixtures, add 'using NUnit.Extensions.Forms'
Basic forms testing
Let's say my application under test (AUT) contains a form, Form1. The first step is to create and display an instance of that form
Form1 testForm = new Form1();
testForm.Show();
Say the form has a button - btnOne. Pressing the button programatically looks like this
ButtonTester btnOneTester = new ButtonTester("btnOne");
btnOneTester.Click();
Upon clicking this button, a label was updated with the everyone's favorite power tool. To verify
LabelTester labelOneTester = new LabelTester("labelOne");
Assert.AreEqual("Chainsaw", labelOneTester.Text, "Label text doesn't match expected");
Though it's not required, it's probably a good idea to close the form instead of letting it fall out of scope
testForm.Close();
Using the hidden desktop
Running these tests on your local machine doesn't pose any issues. If you run them on a build server, however, you'll likely find that they fail - there's no window for the forms to be displayed in. Fortunately, you can send them to a hidden desktop.
To do so, your test fixture must inherit from NUnitFormTest. Then, add the following property to the class
public override bool UseHidden
{
get { return true; }
}
One warning - In most of my test fixtures, I tend to put common code in a [Setup] method. I'm finding that when I have this defined, forms are not being sent to the hidden desktop. I've not spent much time on it, so I'm not sure if it's something I'm doing wrong, or if it's a bug in the tool. I'll post more info if/when I figure it out.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.