任何人都可以向我指出一些使用 NUnit 进行 Give-When-Then 测试的资源吗?
4 回答
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));
}
这种测试风格的好处是您无需查看底层代码即可理解行为的意图。
欲了解更多信息,这里有一些网站:
我知道这是一个老问题,但如果你还没有,你应该看看SpecFlow。它允许您在功能文件中以明文形式编写规范。该工具将根据功能文件自动生成 NUnit 测试。
如果您下载并添加对StoryQ的引用,您可以使用漂亮的 BDD 样式(通过单击链接查看示例),同时像往常一样使用 NUnit(以及 TestDriven.Net,R# 的运行程序,或者什么你)。
您还可以查看一个小型库
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