给出-When-Then NUnit的例子

时间:2009-10-29 13:58:20

标签: c# nunit bdd nunit-2.5

有人能指点我使用NUnit进行Give-When-Then测试的一些资源吗?

4 个答案:

答案 0 :(得分:6)

Given When Then样式与单元测试的Arrange Act Assert样式密切相关。

以下是一个例子:

[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));
}

这种测试风格的好处是你不需要查看底层代码来理解行为的意图。

有关更多信息,请访问以下网站:

http://www.arrangeactassert.com/

Roy Osherove's Blog

http://www.artofunittesting.com/

答案 1 :(得分:5)

如果您下载并添加对StoryQ的引用,您可以使用漂亮的BDD样式(通过单击链接查看示例),同时像往常一样使用NUnit(和TestDriven.Net,R #的跑步者,或者你有什么。)

答案 2 :(得分:5)

我知道这是一个老问题,但如果你还没有,你应该看看SpecFlow。它允许您以明文形式在特征文件中编写规范。该工具将根据要素文件自动生成NUnit测试。

答案 3 :(得分:0)

您也可以查看一个小型图书馆 https://www.nuget.org/packages/Heleonix.Testing.NUnit/ 在您的测试中,库不是像//Arrange, //Act, //Assert那样编写注释或命名不可读的方法(如Given_UserIsLoggedIn_When_SomeButtonIsPressed_Then_BlaBla,而是提供了以JavaScript的Jasmine或Jest的方式在GWT和AAA样式中编写测试的能力。见自述文件: https://github.com/Heleonix/Heleonix.Testing/blob/master/README.md