写点什么

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

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

关注

评论

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

第八周学习总结

qihuajun

ARTS 打卡(2020.07.13-2020.07.19)

小王同学

【总结】性能优化2

小胖子

第八周作业

qihuajun

产业区块链一周新动态

CECBC

多项扶持政策 产业研究高涨 学会协会成立 应用频繁落地

Spark 窗口函数 I

马小宝

spark 窗口函数 spark window functions

全栈新星 -- Dart

金刚狼

flutter dart 全栈 aqueduct

ARTS Week9

时之虫

ARTS 打卡计划

数据结构和算法-链表

jason

JVM系列之:String.intern和stringTable

程序那些事

Java JVM GC 常量池 字符串

一个成都程序猿眼中的成都和天府软件园,先从蚂蚁金服说起…

why技术

程序员 成都 蚂蚁金服

比 996 更可怕的是职场 PUA

非著名程序员

职场 职场成长 职场误区 职场 PUA

Android | xml和view的那些事

哈利迪

android

设计数据库

左洪斌

周末在家加班开发代扣支付网关!

诸葛小猿

加班

Java面试胜经001| 阿里Java面试题118道

BUZHIDAO

面试

Java有效面试题

老大哥

面试

架构师课程第八周 作业

杉松壁

ARTS-WEEK8

一周思进

ARTS 打卡计划

登门槛效应 - 请求帮忙,从小事开始。

石云升

登门槛效应 得寸进尺效应

“链”上普洱,云南省区块链中心走进大美普洱

CECBC

区块链+ “链”上普洱 数字云南 分布式产业

ARTS 打卡第 4 周

Scotty

安全系列之——手写JAVA加密、解密

诸葛小猿

对称加密 加密解密 非对称加密 rsa AES

两个单向链表是否存在合并元素

周冬辉

关于架构的几件小事:架构决策

北风

架构 架构设计 架构师 架构设计原则

java并发系列 :实战篇,微服务日志的伤痛,一并帮你解决掉

南方有乔木兮

架构师训练营第八周课后题

Cloud.

8week

一叶知秋

【架构师训练营 - 作业 -8】

小动物

首个区块链金融应用规范出炉,标准先行避免“先污染后治理”

CECBC

技术规范 应用评估规则 话语权 政府积极推进

AI与劳模的交点:拼多多农研大赛释放的产业能量

脑极体

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