SpecFlow&环境搭建
目录
BDD
Behavior Driven Development,即行为驱动开发,是敏捷开发技术之一,通过自然语言定义系统行为,以功能使用者的角度,编写需求场景,且这些行为描述可以直接形成需求文档,同时也是测试标准。
BDD 的目的不是自动化测试,但是 BDD 可以有效指导自动化测试,基于 BDD 的自动化测试相当于维护了一份需求活文档,对项目需求的维护和管理非常有价值。
SpecFlow
SpecFlow是一个测试框架,支持BDD的指导思想。SpecFlow源于Cucumber,概念和用途几乎一样,可以理解为SpecFlow是.Net平台下的Cucumber。基于Gherikin语法来定义用户场景。
安装扩展插件
打开Visual Studio 2022,顶部菜单扩展->管理扩展,安装Specflow插件
下载完毕,关闭VS,插件将提示被安装
安装完毕
创建测试项目
新建空白解决方案
创建一个待测类库
创建一个SpecFlow测试项目
在选择Test Framework时提供了四种选项,可依据实际使用选用
NUnit
xUnit
MSTest
SpecFlow+Runner 该方式需要跳转到微软账号获取认证,否则无法使用模板中已附带了相关的Nuget包,如上我选择NUnit
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.0.0" />
<PackageReference Include="SpecFlow.Plus.LivingDocPlugin" Version="3.9.57" />
<PackageReference Include="SpecFlow.NUnit" Version="3.9.40" />
<PackageReference Include="nunit" Version="3.13.2" />
<PackageReference Include="NUnit3TestAdapter" Version="4.1.0" />
<PackageReference Include="FluentAssertions" Version="6.2.0" />
</ItemGroup>
创建好的SpecFlow默认带了一个Demo
注意:默认创建的SpecFlow使用C#10,本地使用的C#9,有些功能不能使用,因此我将全局的命名空间及可空功能都关闭了,更改如下部分,删除即可
在ImplicitUsings中的全局命名空间,Copy到其他类中,删除ImplicitUsings.cs文件
为保持结构简洁,先删除Drivers和Support文件夹
完成对CalculatorDemo类库的引用
最终项目结构
2022-01-23,望技术有成后能回来看见自己的脚步