BDD与TDD的认识
BDD和TDD 是两种不同的测试思想。
BDD:行为驱动开发
TDD:测试驱动开发(Test-Driven Development)
一、 TDD
测试金字塔: UT————IT————ST
单元测试 集成测试 系统测试
单元测试工具: Junit \ TestNG \ Stub \ Mock
Stub与Mock的区别:前者关注被测接口的返回值,后者关注所依赖对象的行为。前者关注状态,后者关注行为。
MVC:WEB应用三层: DAO层、SERviec层、Control层,单元测试每一层都要独立,层间不能有强依赖,单独对每一层进行测试,但Serveic层对DAO有所依赖,我们就需要用到Mock.
TDD的流程:
二、BDD(Behavioral -Driven Development)行为驱动开发。
通过用户的行为来测试,我们的脚本是由用户的行为转换而成的。用户行为——自然语言——可执行的脚本。
比如常用的购物网站:登陆购物网站——查看商品——加入购物车——结算。
Given I have login in the shoping site。 我已经登陆了一个购物网站。
When I search Huawei telphone. 我搜索一个华为手机
Then I can see the goods about huawei telphone. 我搜过到了个关于华为手机的商品。
这就是描述性的自然语言,来描述需求,从用户的角度去关注我们的系统应该实现什么功能。我们的功能是站在用户的角度出发的,可以减少用户验收的时间。
Cucumber测试是基于BDD的。
Cucumber测试的学习环境:
environment: 1. Java SE.JDK 1.8 is recommended
2. Maven version 3.3.1 or higher
3. IDE (Eclipse)
4. plugin 1: IDEA Cucumber for java plugin
5. plugin 2: Cucumber Eclipse
Features Example: 功能例如
Feature: Add Another Cellphone to cart
Scenario : 脚本 Add cellphone to cart with sufficient stock 库存充足
Given I have login in the shopping website. \\条件:我已经登陆一个购物网站
When I add one cellphone into the cart \\当我添加一部 手机至购物车里时
Then I can see one cellphone in my cart. \\那么我能在我的购物车里看见一部手机。
单元测试:what
TDD测试:when
BDD测试:how
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言