昨天讲了安装 Cucumber 以及基本语法今天我会拿一些范例来看看是如何写的!
基本上每一句语句都会对应到一个建立的程序码通常会搭配 FactoryBot
使用,我们会整理在features/step_definitions/integration.rb
里
假设我写了 我开了一家店
那在专案中一定会看到有一处是
假如('我开了一家店') do
# 这边会产出一间店
end
规格书:
# language: zh-TW
@javascript @chrome @integration
功能: 结帐功能-商品限量购买
背景: 我有一家店
假如 我开了一家店
而且 新增了一个运送方式
而且 新增了一个付款方式
而且 有一个顾客"CK"
而且 商家有以下资料的商品
| id | title | price |
| 1 | 红茶 | 100 |
而且 商家有以下限购群组
| id | title | limit_count |
| 1 | 限购红茶 | 2 |
场景: 购买一般商品超过限购数量
假如 使用"CK"顾客帐号登入
而且 我在商品列表页
当 我选择"红茶"加入购物车,数量为3
而且 进入结帐页面
而且 完成结帐
那麽 我会收到"「红茶」最多只能购买 2 个。现在购物车中有 3 个。"而无法购买
场景: 购买一般商品没有超过限购数量可以结帐成功
假如 使用"CK"顾客帐号登入
而且 我在商品列表页
当 我选择"红茶"加入购物车,数量为1
而且 进入结帐页面
而且 完成结帐
那麽 我会跳转到订单页
我们可以看到这份规格书 背景是 "我有一家店"
那麽可以知道我们必须要先新增一个 shop
而且 付款跟运送方式还有商品跟限购群组都要先建立出来才可以测试,也能告诉客户这边会使用到这些相关功能,而程序码像是:
#假如 我开了一家店
假如('我开了一家店') do
@shop = FactoryBot.create(:user_admin).shop
end
#而且 新增了一个运送方式
而且('新增了一个运送方式') do
FactoryBot.create(:price_based_shipping_rate, shipping_id: @shop.shipping.id)
end
那也会看到有些语句有使用 ""
包起来 其实就是变数的意思,可以随意带值进去并且在程序码中使用{string}
接起来,数字的话就用{int}
# 当 我选择"红茶"加入购物车,数量为1
当('我在商品页选择{string}加入购物车,数量为{int}') do |title, quantity|
add_product_to_cart(title, quantity)
end
当我们写完一份规格书之後可以在终端机测试搂!
cucumber features/integration/checkout/limit_buy.feature
<<: Day05: 05 - Django架构规划、资料库规划、商品资料准备
>>: 第 4 天 英雄有偶包怎麽办|*ngFor、JsonPipe、Angular Material、Mat-Card、Mat-Button
在资料输入输出原本Java提供了java.io套件来给开发者使用,不过都是面对Byte[]的操作,在...
tags: swfLAB ⚠️ Of course this is only my personal...
iOS APP iOS Test-Driven Development by Tutorials f...
awk Linux文字处理工具中, 有另一个杀器awk 但awk是个程序语言, 所以它很灵活且功能强...
舒安表示:我的手机是有高画质的,不过这影片的4K片段是用相机拍出来的。 半年前,在蓝象廷用餐时,因为...