7

任何人都可以向我指出一些使用 NUnit 进行 Give-When-Then 测试的资源吗?

4

4 回答 4

7

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/

罗伊·奥舍罗夫的博客

http://www.artofunittesting.com/

于 2009-10-29T18:36:34.247 回答
6

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

于 2011-01-24T19:33:24.040 回答
5

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

于 2009-10-30T12:09:18.750 回答
0

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

于 2018-03-28T19:27:15.523 回答