写点什么

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

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

关注

评论

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

初创企业CRM系统解决方案

低代码小观

初创公司 企业微信 企业管理系统 CRM系统 客户关系管理系统

明确生态边界的钉钉,让ToB从业者们松了口气

ToB行业头条

巧用对象存储回源绕过SSRF限制

火线安全

Web 云安全 web漏洞

Go Data Structures: Interfaces [中译]

hyx

源码 Go 语言

【性能测试工具lmbench】快来测测你的系统可以打几分

优麒麟

Linux 开源 系统管理 优麒麟

架构实战营 第6期 模块一课后作业

火钳刘明

#架构实战营 「架构实战营」

Tapdata加入PolarDB开源数据库社区

阿里云数据库开源

数据库 阿里云 开源 开源数据库 polarDB

如何搭建B端产品帮助中心

小炮

帮助中心 B端用户

不仅仅是一把瑞士军刀 —— Apifox的野望和不足

Liam

Java 程序员 Jmeter Postman swagger

实现简易的 Vue 响应式

CRMEB

阿里本地生活端智能架构设计与技术探索

阿里巴巴终端技术

端智能

19 条有效的跨端 cpp 开发经验

阿里巴巴终端技术

cpp 跨端开发

3步排查,3步优化,探针性能损耗直降44%

TakinTalks稳定性社区

Java 性能分析 探针 性能提升 性能损耗

Go性能优化小技巧

jinjin

Go 性能优化

物理裸机配置如何转换为天翼云云主机配置

天翼云开发者社区

云主机

【OpenHarmony移植案例与原理】XTS子系统之应用兼容性测试用例开发

华为云开发者联盟

测试 OpenHarmony XTS 应用兼容性测试

谷歌云对象存储攻防

火线安全

安全攻防 对象存储 云安全

模块一作业

HZ

架构实战营

XSS跨站脚本攻击漏洞修复技巧

喀拉峻

网络安全

如何选择天翼云云硬盘

天翼云开发者社区

云硬盘

关于黑帕云用户迁移明道云的详细说明

明道云

直播预告 | PolarDB-X 动手实践系列——用 PolarDB-X + Flink 搭建实时数据大屏

阿里云数据库开源

数据库 阿里云 开源 分布式 polarDB

2022年作为一个中年程序员写给35岁的自己

Linux服务器开发

c++ 程序员 架构师 Linux服务器开发 Linux后台开发

新思科技加速安全软件开发,推出Code Sight插件标准版

InfoQ_434670063458

软件开发 新思科技 可信软件 IDE环境 Code Sight

网络安全 Kali web安全 基于SMB协议收集信息

学神来啦

Linux 运维 网络安全 WEB安全 kali Linux

CSDN 数据库Meetup|OceanBase 技术专家讲述 SQL 的一生

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版 OceanBase社区

华为云企业级Redis揭秘第17期:集群搭载多DB,多租隔离更降本

华为云数据库小助手

GaussDB GaussDB ( for Redis )

天翼云虚拟IP地址及其在高可用集群中的应用

天翼云开发者社区

虚拟机

高性能的连接管理和数据路由组件,OceanBase 生态工具 ODP 详解

OceanBase 数据库

oceanbase OceanBase 开源 OceanBase 社区版

KubeVela: 如何用 100 行代码快速引入 AWS 最受欢迎的 50 种云资源

阿里巴巴云原生

想让DBA瞬间崩溃,那就让他去做SQL性能优化

华为云开发者联盟

数据库 sql 遍历 存储 优化SQL

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