QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

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

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

关注

评论

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

【教程】uni-app iOS打包解决profile文件与私钥证书不匹配问题

雪奈椰子

Redis 又双叒叕改开源协议了,微软提前推出高性能替代方案 Garnet

小猿姐

redis microsoft 开源协议

软件测试学习笔记丨Allure2 添加用例分类

测试人

软件测试

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度

阿里巴巴云原生

阿里云 微服务 云原生 云效

提升Java编程安全性-代码加密混淆工具的重要性和应用

雪奈椰子

深入了解如何对IPA包进行有效的混淆处理

雪奈椰子

探讨Java代码混淆加固工具

雪奈椰子

脑洞大开丨让 AI 写代码,能做出什么样的项目?

阿里巴巴云原生

阿里云 云原生

终于有人讲清楚了!如何成为高价值的程序员

互联网工科生

【教程】混淆代码保护与优化

雪奈椰子

【教程】oc代码混淆_OC代码混淆工具

雪奈椰子

Git进阶命令-reset

不在线第一只蜗牛

【教程】移动应用安全加固技术解析

雪奈椰子

轻松实现UniApp Xcode上传IPA无需Mac,appuploder一键上传助你高效开发!

雪奈椰子

悦数图数据库推出 AI 知识图谱构建器及图语言生成助手

悦数图数据库

图数据库

易快报与国贸SAP秒同步,数据同步不再是难题!

聚道云软件连接器

案例分享

easyExcel导出的字段命名问题,导致无法导出数据

光进

java‘

AIGC:释放生成式AI的无限潜能,打造你的专属外脑

EquatorCoco

人工智能 AIGC

🚀2023最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包

雪奈椰子

程序员必须了解的 10个免费 Devops 工具

EquatorCoco

DevOps 运维 开发

【教程】APP加固的那些小事情

雪奈椰子

.NET Framework 服务实现监控可观测性最佳实践

观测云

.net

自己动手做一个批量doc转换为docx文件的小工具

快乐非自愿限量之名

C# doc docx

【教程】APP加固的那些小事情

雪奈椰子

苹果证书过期有什么影响

雪奈椰子

【教程】一个比较良心的C++代码混淆器

雪奈椰子

云效 AppStack + 阿里云 MSE 实现应用服务全链路灰度

阿里云云效

阿里云 微服务 云原生 云效

【教程】为什么要为 App 应用加固 ?如何为 App 应用加固 ?

雪奈椰子

【教程】苹果iOS证书制作教程

雪奈椰子

【教程】 iOS混淆加固原理篇

雪奈椰子

【教程】苹果上架常见要求的有哪些?

雪奈椰子

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