SpecFlow&环境搭建

目录

BDD

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

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

SpecFlow

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

安装扩展插件

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

224817538_f9567cb2-41d7-4f77-9656-63fbee5fb8dc 下载完毕,关闭VS,插件将提示被安装

224819451_4482754b-ae5f-4d00-a820-435a40e9e34d 安装完毕

224820919_882b6625-dc85-4683-8a0c-959468f90366

创建测试项目

  1. 新建空白解决方案224822168_9fdf9c65-bdfb-4213-a59f-294d86123c6f

  2. 创建一个待测类库224824289_00c77637-c74f-44c0-889b-cc97cd74b489

  3. 创建一个SpecFlow测试项目224826743_09c78d54-2fed-44c2-b540-4d8ae2c3aa86

在选择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 224829177_780ce66b-3996-4480-8ba1-9c2d2cb82d15 注意:默认创建的SpecFlow使用C#10,本地使用的C#9,有些功能不能使用,因此我将全局的命名空间及可空功能都关闭了,更改如下部分,删除即可

224830492_a2557402-2ef0-4690-bdb0-ff999e64a2e3 在ImplicitUsings中的全局命名空间,Copy到其他类中,删除ImplicitUsings.cs文件

224831949_2a22f0e7-d1b5-47eb-879a-0a604229f6ea 为保持结构简洁,先删除Drivers和Support文件夹

224833269_b932bc7a-67a9-4336-aa16-76ea052397f5 完成对CalculatorDemo类库的引用

224834476_bd2fdacc-1253-469b-9d67-6ecf7cd3cd7c 最终项目结构

224836396_492a8df8-368c-4ed8-967d-11ce80322722

2022-01-23,望技术有成后能回来看见自己的脚步