写点什么

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

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

关注

评论

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

AppCube快速开发问卷调查应用在WeLink发布上线

DS小龙哥

3月月更

成为 DevOps 工程师需要具备哪些能力?

飞算JavaAI开发助手

提效24.3%!看OA预算管理系统的低代码开发实践

鲸品堂

低代码开发

还搞不明白,一次性给你总结好网络层概念

华为云开发者联盟

网络协议 IP 网络层 组网

摩尔定律的现在及未来

科技新消息

看完微信抢红包算法你就明白,为啥你不是手气最佳

华为云开发者联盟

算法 微信红包 手气最佳 剩余金额随机法 割线法

安利一个小众但实用的导航网站(推荐收藏)

小炮

导航网站

OceanBase 在证券行业基金资管场景落地实践与解决方案

OceanBase 数据库

证券 oceanbase

【Git教程】Git最全使用指南

阿里云云效

git 云计算 阿里云 DevOps Codeup

华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库

华为云开发者联盟

数据库 人才培养 华为云 GaussDB 华为云数据库

给工厂做开发,竟然喝着咖啡听“交响”?

阿里云云效

云计算 阿里云 DevOps 研发 研发提效

web前端培训-通过JS 可以读取电脑上所有数据

@零度

JavaScript 前端开发

Java篇|忘记格式化代码,把女朋友鸽了

Jianmu

Java 自动化 持续集成 建木CI 格式化代码

Apache Impala架构解析及与Hive、SparkSQL的性能比较

编程江湖

四大功能!带你初识 Fabric | 容器网络系列第2期

BoCloud博云

云原生 容器网络方案

Spark的job、stage和task的机制论述

编程江湖

TDengine 和 InfluxDB 查询性能对比测试报告

TDengine

数据库 tdengine

Linux常用命令分享:有手就会,但能解决95%以上的问题

优麒麟

Linux 开源 计算机 优麒麟

web前端技术Mongoose详解

编程江湖

想做好分布式架构?这个知识点一定要理解透!

博文视点Broadview

TDengine 在智慧矿山系统中的应用

TDengine

行业分析| 音视频呼叫邀请适用于多领域

anyRTC开发者

音视频 WebRTC 语音通话 视频通话 呼叫邀请

vivo 商品中台的可视化微前端实践

vivo互联网技术

可视化 前端特效

助力数字经济 明源云助力不动产行业打造数字新引擎

科技热闻

java培训-Redis 原理与知识总结分享 不愁面试

@零度

redis JAVA开发

NetCore性能排查

神农写代码

FabEdge V0.5.0 新特性:支持跨集群服务访问

BoCloud博云

开源 边缘计算 cncf

CPU的“花招”已耍完?无指令集架构颠覆旧套路

OneFlow

人工智能 机器学习 深度学习 英伟达 芯片

OpenHarmony标准设备应用开发(一)——HelloWorld

OpenHarmony开发者

Hello World ! OpenHarmony 标准设备

在 Rainbond 中一键安装高可用 Nacos 集群

北京好雨科技有限公司

开源 Kubernetes nacos PaaS rainbond

提高企业产品交付效率系列(1)—— 企业应用一键安装和升级

北京好雨科技有限公司

Kubernetes PaaS rainbond

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