2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

Vue3使用小技巧

青柚1943

Presto 设计与实现(十一):抽象语法树 AST

冰心的小屋

AST 抽象语法树 presto 设计与实现

英特尔数据中心突破创新,以全新架构点燃发展新引擎

E科讯

Programming abstractions in C阅读笔记:p138

codists

c

Mac电脑强大的图像编辑 Pixelmator Pro 中文直装

胖墩儿不胖y

图像编辑 Mac软件 图像处理工具

MySQL redo log恢复原理 | StoneDB技术分享会 #5

StoneDB

MySQL 数据库 HTAP StoneDB

OpenHarmony Meetup 2023广州站圆满举办,城市巡回全面启航

科技热闻

MySQL Shell 8.0.32 for GreatSQL编译安装

GreatSQL

greatsql

直播预告 | 博睿学院第四季-博睿数据资深运维团队现身说法!

博睿数据

直播 博睿数据 博睿学院

zone.js由入门到放弃之二——zone.js API大练兵

OpenTiny社区

前端 zone.js

小灯塔系列-中小企业数字化转型系列研究——SCRM测评报告

向量智库

理解 Databend Cluster key 原理及使用

Databend

【深入MaxCompute】人力家:用MaxCompute 事务表2.0主键模型去重数据持续降本增效

阿里云大数据AI技术

MaxCompute

火山引擎 DataLeap 助你拥有 Notebook 交互式的开发体验

字节跳动数据平台

大数据 数据中台 数据治理 数据安全 企业号 8 月 PK 榜

纯CSS杂志封面折叠效果

南城FE

CSS 前端 动画 交互

R语言之 ggplot 2 和其他图形

timerring

R语言

软件测试案例 | “某气候中心数据加工处理系统”软件项目验收测试

TiAmo

软件测试 测试

DORA指标:公司业务成果的“占卜师”

SEAL安全

DevOps 运维‘ DORA 企业号 8 月 PK 榜

全球前十的LED大屏幕租赁公司

Dylan

娱乐 科技 LED显示屏 led显示屏厂家 虚拟演唱会

直播程序源码OAuth协议:开放授权的重要性

山东布谷科技

软件开发 Oauth 源码搭建 直播程序源码 开放授权

阿里云PolarDB分布式版,降价40%!

阿里云瑶池数据库

数据库 阿里云 polarDB

OpenSSL 3.0.0 设计(四)|代码维护、FIPS 测试

铜锁开源密码库

算法 测试 代码 密码学 openssl

OpenHarmony Meetup 2023 广州站圆满举办,城市巡回全面启航

OpenHarmony开发者

OpenHarmony

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