生成式AI领域的最新成果都在这里!抢 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:07847
用户头像

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

关注

评论

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

如何快速将钉钉员工信息同步到飞书

RestCloud

罗拉rola-ip详解长效代理IP和短效代理IP的区别是什么?

Geek_bf375d

WorkPlus AI助理知识问答机器人,助力企业级私有化AI构建

WorkPlus

WorkPlus私有化部署的即时通讯软件,企业内部沟通协作的利器

WorkPlus

WorkPlus Meet视频会议系统,可私有化部署,保障内部数据安全

WorkPlus

双11终极之战,华为云耀云服务器L实例点燃狂欢高潮

YG科技

基于javacv的人脸识别和图片内容审核方案

智慧源点

人脸识别 内容审核

不会写代码了?2分钟看完,这5个技巧你一定要收好。

代码生成器研究

罗拉ROLA告诉你如何正确、合理使用静态IP代理?

Geek_bf375d

从DPlayer说起,有哪些开源的H5播放器

魂祈梦

前端 js

ETL数据转换工具类型与适用场景

RestCloud

ETL

是效率利器还是程序黑盒?为什么程序员都抵制低代码?

代码生成器研究

Linux设备树(DTS)介绍

攻城狮Wayne

C语言与C++语言混合编程的方法

王玉川

c 混合编程 C++

企业ERP实施仍存三大难点,华为云耀云服务器L实例助力破局

平平无奇爱好科技

推出链上美债产品的 ProsperEx:RWA 衍生品赛道的早期玩家

股市老人

罗拉rola-ip带你看使用代理IP时有哪些小技巧?

Geek_bf375d

客户削减项目开发预算,试试华为云这款轻量应用服务器保质保量

YG科技

内卷出奇迹!华为云耀云服务器L实例凭实力成为_卷王_

平平无奇爱好科技

IP长效代理,稳定、高效网络罗拉rola-ip代理服务

Geek_bf375d

为什么开发不能兼任测试?普通人不知道的冷知识指南

代码生成器研究

新一轮SocialFi浪潮来袭,Atem Network 再次打响注意力争夺战

股市老人

容器中sh脚本明明存在,为何会报"no such file or directory"的错误?

大伟

git Docker autocrlf

『亚马逊云科技产品测评』活动征文|如何使用Docker compose快速搭建个人博客?

鸽芷咕

Docker 容器 云服务器

外贸网站预算持续削减,这个轻量应用服务器搞定老板

YG科技

低代码自动化,程序员真的还有前途吗??

代码生成器研究

解锁数据潜力:为什么你应该考虑使用向量数据库

熬夜磕代码、

数据库

CSS选择器

阡陌r

CSS 选择器 伪元素 伪类

大语言模型|人工智能领域中备受关注的技术

许思王

人工智能 大语言模型

小程序开发经费紧张,华为云这份省钱秘笈请点赞收藏

YG科技

无代码/低代码编程是否走错了路?

代码生成器研究

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