SpecFlow&环境搭建

BDD

Behavior Driven Development,即行为驱动开发,是敏捷开发技术之一,通过自然语言定义系统行为,以功能使用者的角度,编写需求场景,且这些行为描述可以直接形成需求文档,同时也是测试标准。

BDD 的目的不是自动化测试,但是 BDD 可以有效指导自动化测试,基于 BDD 的自动化测试相当于维护了一份需求活文档,对项目需求的维护和管理非常有价值。

SpecFlow

SpecFlow是一个测试框架,支持BDD的指导思想。SpecFlow源于Cucumber,概念和用途几乎一样,可以理解为SpecFlow是.Net平台下的Cucumber。基于Gherikin语法来定义用户场景。

安装扩展插件

打开Visual Studio 2022,顶部菜单扩展->管理扩展,安装Specflow插件

图片

下载完毕,关闭VS,插件将提示被安装

图片

安装完毕

图片

创建测试项目

  1. 新建空白解决方案
    图片

  2. 创建一个待测类库
    图片

  3. 创建一个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,望技术有成后能回来看见自己的脚步

posted @ 2022-01-23 22:57  微笑刺客D  阅读(723)  评论(0编辑  收藏  举报
返回顶部