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,望技术有成后能回来看见自己的脚步
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了