开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

使用 Remarkable 进行 Rails 行为驱动开发,提供宏与国际化支持

  • 2009-05-18
  • 本文字数:801 字

    阅读完需:约 3 分钟

许多方法都可以开发、测试和集成 Rails 应用程序:例如使用基础的 Test:Unit ZenTest 进行测试驱动开发,利用 RSpec Shoulda Cucumber 进行行为驱动开发。当然也可以编写自定义的 RSpec 匹配器。

然而,我们却很难找到合适的工具,并挖掘它们的最佳实践。 Remarkable 试图将这些工具的语法统一起来,并添加更多特性,从而避免 Rails 行为驱动开发的痛苦。

Remarkable 框架使用了自己的 DSL(领域特定语言)。它通过提供宏与国际化的支持对 RSpec 进行了扩展。它提供了一个详尽的 RSpec 匹配器集合,能够根据各种选项转换所有的 ActiveRecord 验证。这些选项包括:through, :source, :source_type, :class_name, :foreign_key 等。它同时还为 ActionController 提供了一个匹配器集合。

我们可以使用类似 RSpec 或 Shoulda 的语法(来源于 Remarkable 项目网站):

复制代码
1) it { should validate_numericality_of(:age)<wbr></wbr>.greater_than(18).only_integer }
2) it { should validate_numericality_of(:age, :greater_than => 18, :only_integer => true) }
3) should_validate_numericality_<wbr></wbr>of :age, :greater_than => 18, :only_integer => true
4) should_validate_numericality_<wbr></wbr>of :age do |m|
m.only_integer
m.greater_than 18
# Or: m.greater_than = 18
end

这样我们就可以非常容易地编写模型的规格说明:

复制代码
describe Post do
should_belong_to :user
should_have_many :comments
should_have_and_belong_to_many :tags
should_validate_presence_of :body
should_validate_presence_of :title
should_validate_uniqueness_of :title, :allow_blank => true
end

现在可以获取 Remarkable 3.0 版本,该项目还在持续更新中;下一个版本将提供更多的 Rails 匹配器,例如对 ActionView 的支持。

查看英文原文: Rails BDD with Macros, I18n,… with Remarkable

2009-05-18 12:071030
用户头像

发布了 109 篇内容, 共 42.0 次阅读, 收获喜欢 14 次。

关注

评论

发布
暂无评论
发现更多内容

儿童节变身小小音乐家,用ModelArts制作一张AIGC音乐专辑

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号2024年5月PK榜 六一儿童节

合合信息启信数据洞察:长三角新能源汽车产业协同,打造“4小时产业圈”

合合技术团队

产业 新能源汽车 长三角

Charles抓包神器:深度解析网络数据传输的秘密

测试人

软件测试 charles

以太坊

dappweb

以太坊

阿里云数据库 SelectDB 版全面商业化!开启现代化实时数据仓库的全新篇章

SelectDB

大数据 阿里云 数据仓库 数据分析 云原生数据库

Linux VXLAN小实验

天翼云开发者社区

云计算 Linux VXLAN

QCN6274 and QCN9074 chip series Comprehensive comparison

wifi6-yiyi

WiFi7 6G

重磅上线:腾讯云应用性能监控 APM 实现多语言应用秒级接入

腾讯云可观测平台

腾讯云 可观测平台

抓包神器Charles:解析网络数据传输的秘密

霍格沃兹测试开发学社

AI日报|GPT-4o向免费用户开放!AI助手“腾讯元宝”上线应用商店

可信AI进展

碳课堂|入门必看!碳足迹(CFP)主要国际标准一览

AMT企源

碳管理 碳核算 碳足迹

[ICDE2024]多正常模式感知的频域异常检测算法MACE

阿里云大数据AI技术

人工智能 阿里云 异常检测算法 ICDE2024

万界星空科技低代码平台+商业开源低代码MES

万界星空科技

低代码 低代码平台 mes 万界星空科技 万界星空科技低代码平台

产品负责人和ScrumMaster可以是同一个人吗?

ShineScrum

LLMs 能否胜任「数据标注」?机遇与挑战并存

Baihai IDP

程序员 AI 数据标注 LLM 企业号 5 月 PK 榜

带你走进量子云平台(二)

天翼云开发者社区

云计算 量子云 量子云平台

得助ICC智能联络中心助力企业数字化营销服务升级

中关村科金

人工智能 智能客服 大模型 联络中心

运营商大模型的进化路线“分野”

脑极体

AI

LED显示屏未来的发展值得期待

Dylan

技术 行业 LED LED显示屏 市场

黑客恢复被遗忘的比特币钱包

区块链开发团队DappNetWork

RUM是什么?它能解决什么问题?

乘云数字DataBuff

前端监控 可观测性 RUM

使用Remarkable进行Rails行为驱动开发,提供宏与国际化支持_Ruby_Sebastien Auvray_InfoQ精选文章