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

有帮助吗?

解决方案

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

其他提示

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的博客

http://www.artofunittesting.com/

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top