写点什么

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

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

关注

评论

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

风云再起之国产数据库风云榜-2021年12月

墨天轮

数据库 opengauss TiDB 国产数据库

Nginx+IIS做站点访问负载均衡

为自己带盐

nginx dotnet 28天写作 12月日更

Spring框架基础知识(01)

海拥(haiyong.site)

28天写作 12月日更

一文带你了解数据库设计基础

坚果

数据库 28天写作 12月日更

Linux中如何设置SSH密钥提升登陆安全性

恒生LIGHT云社区

Linux SSH

世界女性科技群落(四):技术与流行文化顶格发展,日韩女性的科技暗面

脑极体

Hoo虎符研究院 | 币圈后浪——Swivel Finance

区块链前沿News

Hoo虎符 虎符交易所 虎符研究院

百度CTO王海峰:AI大生产平台再升级 助力中国科技自立自强

百度大脑

人工智能

当 Redis 发生高延迟时,到底发生了什么

程序员历小冰

redis 延迟 28天写作 12月日更

【网络安全】针对 HTTP/2 协议的HTTP Desync攻击

H

网络安全 信息安全 漏洞

Python代码阅读(第73篇):字符串字节数

Felix

Python 编程 字符串 阅读代码 Python初学者

信通院首批AIOps系统和工具评估,博睿数据获评异常检测模块“全面级”

博睿数据

语音信号处理14:语音信号的特征应用

轻口味

28天写作 12月日更

实现一个javaagent需要几步?

BUG侦探

Java javaagent IAST

Hadoop学习过程中遇到的错误及解决方法

阿丞

hadoop hdfs mapreduce YARN

2021百度AI开发者大会在元宇宙举办

百度大脑

人工智能

个推漫话知识图谱:《女心理师》中的智能语音识别系统如何实现?

个推

机器学习 nlp 知识图谱

基于kali的域控环境搭建——黑盒测试环境搭建

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

项目开发架手架规划

hasWhere

Java 必看的 Spring 知识汇总!

CRMEB

2021年终总结

hasWhere

AI风起荆楚,人工智能中国体系即刻启航

脑极体

研究了一圈React学习资料,发现最好用的React教程还是这个

sai

设计消息队列存储消息数据的 MySQL 表格

奔奔

11月云短信报告出炉,腾讯云再次蝉联到达率冠军

博睿数据

模型黑盒|机器学习模型的“可解释性”研究

索信达控股

神经网络 机器学习 神经网络模型

资产租赁管理系统解决方案

低代码小观

资产管理 CRM 企业管理系统 融资租赁 CRM系统

高性能队列Disruptor在测试中应用

FunTester

Disruptor 测试 性能测试 高性能队列 FunTester

忆父亲

wood

28天写作 父亲

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