AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

晋级揭晓!华秋第九届中国硬件创新创客大赛-华东分赛区决赛成功举办!

华秋电子

创业

SDK或低代码运行时,提示找不到某些库文件

矩视智能

深度学习 机器视觉

研发效能|DevOps 是运维还是开发?

laofo

DevOps cicd 研发效能 持续交付 效能度量

应用场域的深度融合与创新构想

百度开发者中心

#人工智能 ChatGPT 大模型微调

国密算法是什么意思?支持国密算法的云管平台哪家好?

行云管家

云计算 云管平台 云管理 国密 国密浏览器

基于Falcon-7B模型的QLoRA微调实操:构建面向心理健康领域的Chatbot

Baihai IDP

AI LLM 白海科技 大模型微调实践 QLoRA实践

香港站群服务器构建多站点网络的利器,将业务推向新高度

一只扑棱蛾子

站群服务器

如何使用Vcluster实现Kubernetes中的多租户

互联网工科生

Kubernetes 集群

大咖云集腾讯DevSecOps实践研讨会,共话落地实践经验

极客天地

ReentrantLock源码解析

Khirye

源码解析 Java源码 ReentrantLock

Wappalyzer浏览器插件:揭开网站的技术秘密

凌览

前端 后端 网站 Wappalyzer

第1期 | 抚今 现代企业已步入新的项目制管理时代

用友BIP

项目管理

创新性与自主性的融合

百度开发者中心

AIGC #人工智能 生成式AI

多地同频|2023年国家网络安全宣传周 海泰方圆全面参与共建网络强国

电子信息发烧客

从过去5年CWE TOP 25的数据看软件缺陷的防护

华为云PaaS服务小智

云计算 软件开发 代码

支持适配国产化平台的云管理软件你给推荐哪家?

行云管家

云计算 云服务 国产化 云管理

文心一言 VS 讯飞星火 VS chatgpt (95)-- 算法导论9.2 4题

福大大架构师每日一题

福大大架构师每日一题

卡奥斯第二届1024程序员节重磅预告!

Openlab_cosmoplat

开源 低代码

幸福里基于 Flink & Paimon 的流式数仓实践

Apache Flink

大数据 flink

未来社交媒体的变革者

百度开发者中心

媒体服务 #人工智能 生成式AI

从理解到实现:一种强大的AI技术

百度开发者中心

深度学习 #人工智能 生成式AI

SmartNews 基于 Flink 的 Iceberg 实时数据湖实践

Apache Flink

大数据 flink 实时计算

OP链丨ARB链代币合约质押挖矿系统开发

l8l259l3365

大模型开发:从数据挖掘到智能应用

百度开发者中心

AIGC #人工智能 大模型微调

什么是高刷LED屏?

Dylan

刷新 LED显示屏 led显示屏厂家

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