BDD - SpecFlow BDD 测试实践 SpecFlow + NUnit

引言

前面有介绍下列实践系列:
BDD - SpecFlow BDD 测试实践 SpecFlow + SpecRun
BDD - SpecFlow BDD 测试实践 SpecFlow + Xunit
BDD - SpecFlow BDD 测试实践 SpecFlow 模板
BDD - SpecFlow BDD 测试实践 SpecFlow + MSTest
今天来实践一下 SpecFlow + NUnit。

创建一个 .NET Framework 项目

我们接着上一篇 BDD - SpecFlow BDD 测试实践 SpecFlow + MSTest 中的实例,在已有的 Solution 中添加一个新的项目。

右键 Solution -> Add -> New Project

在这里插入图片描述

选择 Class Library (.NET Framework) 模板
在这里插入图片描述

注意 Framework 的选择,我本机是 .NET Framework 4.6.2,只要是 .NET 5 及之前的版本应该都没有问题。

在这里插入图片描述

新项目 SpecFlowNUnit 创建好了。

在这里插入图片描述

添加 SpecFlow package

右键 References -> Manage Nuget Packages

在这里插入图片描述

注意选择 SpecFlow 版本依赖的 .NE FrameWork 版本,最新版本依赖 .NET Framework 4.6.1,我的是 .NET Framework 4.6.2,是可以向前后容的。

在这里插入图片描述

SpecFlow 装好以后会多出 packages.config 文件用来管理 Nuget 包。相比 SpecFlow 2.4,没有自动生成 App.config 文件。

在这里插入图片描述

安装 NUnit Package

根据官网 NUnit 安装所需要的的 NuGet 依赖包。
在这里插入图片描述
安装 SpecFlow.NUnit

一定要选择跟 SpecFlow 一致的版本,我们也选择最新版本

在这里插入图片描述
安装 NUnit

安装 SpecFlow.NUnit,自动装了 NUnit 3.13.1 版本,因为最新版本也没有啥依赖,我们可以升级到最新版本。

在这里插入图片描述
安装 NUnit3TestAdapter

选择最新版本即可,没有限制条件

在这里插入图片描述

安装 Microsoft.NET.Test.Sdk

同样最新版本即可

在这里插入图片描述

添加的 packages 都在 packages.config 文件中。

在这里插入图片描述

创建 Feature 文件

该装的依赖包都装好了,我们尝试创建一个 Feature 文件试试。
右键项目-> Add -> New Item

在这里插入图片描述

选择 SpecFlow -> Feature File for SpecFlow

在这里插入图片描述

Feature 文件生成

在这里插入图片描述
用下面代码替换 feature 文件中的内容

Feature: Calculator

A short summary of the feature

@tag1
Scenario: Add two numbers
	Given the first number is 50
	And the second number is 70
	When the two numbers are added
	Then the result should be 120

在这里插入图片描述

现在编译一下这个项目,会产生一个 Calculator.feature.cs 文件,主要是将 SpecFlow Scenarios 转换成 NUnit 可执行的 test cases。

在这里插入图片描述
在这里插入图片描述

创建 step definition 文件

右键 feature 文件中的 step -> Define Steps…,创建 step definition

在这里插入图片描述

在这里插入图片描述

创建的 step definition 文件,模板文件中 step 都是没有实现的。

在这里插入图片描述

实现 steps

为了简单点,每个 step 只做一个输出

在这里插入图片描述

执行测试

编译整个 Solution, 并打开菜单 Test -> Test Explorer,发现到测试用例,点击绿色图标运行。

在这里插入图片描述
执行结果,只能看到总的结果,没有每个 step 详细信息输出
在这里插入图片描述

测试报告

没有自动生成测试报告,有关测试报告以后有时间专门介绍一下。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BDD(行为驱动开发)测试是一种软件开发方法,旨在通过注重故事和行为来保证软件的正确性。SpecFlow是一种.NET环境下的BDD测试工具,它允许开发人员使用Gherkin语言编写和执行测试场景。 Gherkin语言是一种结构化的自然语言,用于描述软件的行为。它使用关键字如Given(假设)、When(当)和Then(那么)来表示测试场景的不同部分。SpecFlow有效地将Gherkin语言与编程语言(如C#)结合使用,这使得开发人员能够以更自然的方式编写测试用例,并将其与实际的代码逻辑连接起来。 使用SpecFlow进行BDD测试可以带来许多好处。首先,它可以使开发人员和业务部门之间的沟通更加清晰明了。通过使用Gherkin语言,开发人员可以更直观地理解业务需求,并将其转化为可执行的测试场景。这样一来,在开发过程中,开发人员可以更准确地了解要编写的代码逻辑,从而降低开发过程中的误解和错误。 其次,SpecFlow可以促进测试自动化。通过将Gherkin语言与实际的代码测试逻辑相结合,开发人员可以将测试用例与代码进行绑定,并自动运行它们以验证软件是否按照预期工作。这样一来,开发人员可以更快地发现和修复潜在的问题,从而提高软件质量和交付速度。 最后,SpecFlow还提供了广泛的集成和插件支持。开发人员可以与其他工具(如技术栈中的单元测试框架、持续集成工具等)进行整合,以实现更全面的自动化测试流程。此外,SpecFlow还允许开发人员通过定义自己的步骤来扩展其功能,以满足特定的测试需求。 总之,使用SpecFlow进行BDD测试可以帮助开发人员更好地理解需求、提高测试效率和软件质量,并提供给开发人员更多的工具来管理和执行测试用例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值