50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

使用 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:071358
用户头像

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

关注

评论

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

Java爬虫实战:API商品数据接口调用

Noah

美国服务器租用:加速你的网站速度和全球可及性

一只扑棱蛾子

美国服务器 美国服务器租用

用低代码平台代替Excel搭建进销存管理系统

互联网工科生

Excel 低代码平台

人工智能 | 机器学习在金融领域的应用

测吧(北京)科技有限公司

测试

如何查询外贸网站是否被Google收录?

九凌网络

外贸网站收录的概念与网站不收录原因

九凌网络

掌握Nginx的高级用法,构建高性能Web应用

树上有只程序猿

nginx

文心一言 VS 讯飞星火 VS chatgpt (121)-- 算法导论10.4 2题

福大大架构师每日一题

福大大架构师每日一题

谷歌优化没头绪,关注这两个重要指标!

九凌网络

产品经理如何快速提升工作效率?这10款工具助你一臂之力!

彭宏豪95

产品经理 产品管理 在线白板 办公软件 在线协作

未来十年中人工智能的发展趋势

测吧(北京)科技有限公司

测试

数字化践行程果 | 砥砺前行,程果创新,共启全球新篇章

携程商旅

KaiwuDB 亮相第四届跨国公司领导人青岛峰会

KaiwuDB

DAPP丨OP链区块链技术质押挖矿系统开发

l8l259l3365

人工智能如何改变医疗保健

测吧(北京)科技有限公司

测试

语音识别技术在智能家居领域的应用与前景

数据堂

语音识别技术在在线教育领域的应用与挑战

数据堂

HarmonyOS音频通话开发指导

HarmonyOS开发者

HarmonyOS

HarmonyOS自定义抽奖转盘开发(ArkTS)

HarmonyOS开发者

HarmonyOS

第12期 | GPTSecurity周报

云起无垠

OpenHarmony设备环境查询:Environment

OpenHarmony开发者

OpenHarmony

谷歌SEO的含义:如何实现SEO策略和技巧?

九凌网络

Generative AI 新世界 | Falcon 40B 开源大模型的部署方式分析

亚马逊云科技 (Amazon Web Services)

Python 机器学习 容器 ;开源 生成式人工智能

语音识别技术在安全领域的应用与挑战

数据堂

服务器常见问题排查(一)——CPU占用高、上下文频繁切换、频繁GC

遥遥知识库

后端 服务器 性能调优 问题定位 线上环境问题

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