7

Can anybody point me to some resources for Give-When-Then style of testing with NUnit?

epitka
  • 17,275
  • 20
  • 88
  • 141

4 Answers4

8

The Given When Then style correlates closely to the Arrange Act Assert style for unit testing.

Here's an example:

[Test]
public void RotateAngle_Given27Degress_Returns64Degrees()
{
   //Arrange or Given
   var someAngleClass = new Angle();

   //Act or When
   var result = someAngleClass.Rotate(27);

   //Assert or Then
   Assert.That(result, Is.EqualTo(64));
}

The great thing about this testing style is you don't need to see the underlying code to understand the intent of the behavior.

For more info here are some sites:

http://www.arrangeactassert.com/

Roy Osherove's Blog

http://www.artofunittesting.com/

Joseph
  • 25,330
  • 8
  • 76
  • 125
6

I know this is an old question, but if you haven't already, you should check out SpecFlow. It allows you to write the spec in clear text in a feature file. The tool will auto-generate NUnit tests based on the feature file.

Pete
  • 12,206
  • 8
  • 54
  • 70
5

If you download, and add a reference to, StoryQ, you can use a nice BDD style (see samples by clicking the link) and at the same time use NUnit as usual (and TestDriven.Net, R#'s runner, or what have you).

Martin R-L
  • 4,039
  • 3
  • 28
  • 28
0

You might also check a small library https://www.nuget.org/packages/Heleonix.Testing.NUnit/ Instead of writing comments like //Arrange, //Act, //Assert or naming unreadable methods like Given_UserIsLoggedIn_When_SomeButtonIsPressed_Then_BlaBla in you tests, the library provides ability to write tests in GWT and AAA styles in manner of JavaScript's Jasmine orJest. See Readme: https://github.com/Heleonix/Heleonix.Testing/blob/master/README.md

Hennadii
  • 149
  • 1
  • 6