50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

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

关注

评论

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

Payso×OceanBase:云上拓新,开启云数据库的智能托管

OceanBase 数据库

数据库 oceanbase

神经网络模型复杂度分析

嵌入式视觉

params 模型计算量分析 FLOPs 卷积层MAC 浮点计算能力

容器 I/O 性能诊断:到底哪个应用是带宽杀手?

阿里巴巴中间件

阿里云 容器 云原生

一站式开发平台 赋能办公全场景

力软低代码开发平台

OceanBase 4.0解读:从TPC-H性能测评看4.0与3.x差异

OceanBase 数据库

数据库 oceanbase

2023 好运开年,OpenMLDB 入选 2022 中国技术品牌影响力企业

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

火山引擎DataTester:5个优化思路,构建高性能A/B实验平台

字节跳动数据平台

大数据 AB testing实战

目标检测模型的评价标准-AP与mAP

嵌入式视觉

ap map roc PR曲线 精确率与召回率

腾讯企点助力建发纸业:浆纸产业数字化战略,传统行业在低增长时代的新路径

人称T客

深耕5G云专网,阿里云祝顺民入选“2022年度5G创新人物”

云布道师

云网络

大数据技术培训学习机构怎么样

小谷哥

WEB前端编程培训学技术怎么样

小谷哥

如何定义算法?10分钟带你弄懂算法的基本概念

九章云极DataCanvas

机器学习 机器学习算法

NineData获"IT168 & ITPub 年度创新产品"奖

NineData

数据库 数据管理 多云管理平台 玖章算术 NineData

从0.5到4.0,OceanBase单机分布式一体化的技术演进|DTCC 2022

OceanBase 数据库

数据库 oceanbase

餐饮业数字化提速,OceanBase助海底捞变身“云上捞”

OceanBase 数据库

数据库 oceanbase

学习大数据技术培训班靠谱吗

小谷哥

到底什么样的 REST 才是最佳 REST?

江南一点雨

Rest springboot

不会还有人不知道吧?BOM上的器件也能在PCB上快速定位啦!(内附高效手焊攻略)

华秋PCB

工艺 PCB PCB设计 焊接 PCB工艺

PolarDB for PostgreSQL 14 开源实战训练营免费报名中!

阿里云数据库开源

数据库 阿里云 开源 postgre PolarDB for PostgreSQL

目标检测模型基础知识

嵌入式视觉

Focal Loss IOU NMS Soft NMS anchor

软件测试/测试开发 | 使用 Zabbix + Grafana 搭建服务器监控系统

测试人

软件测试 Grafana 自动化测试 zabbix 测试开发

16款跨平台应用开发框架,你Pick谁?

Speedoooo

跨端开发 跨端框架 跨端应用平台 跨端开发平台

武汉web前端培训靠谱吗

小谷哥

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