有人能指点我使用NUnit进行Give-When-Then测试的一些资源吗?
答案 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));
}
这种测试风格的好处是你不需要查看底层代码来理解行为的意图。
有关更多信息,请访问以下网站:
答案 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