这次我们来重构我们的测试用例。
require File.dirname(__FILE__) + '/../test_helper'
class UserTest < Test::Unit::TestCase
fixtures :users
def test_full_name_without_middle_initial
user = User.new(:first_name => 'John', :last_name => 'Doe')
assert_equal 'John Doe', user.full_name
end
def test_full_name_with_middle_initial
user = User.new(:first_name => 'John', :middle_initial => 'H', :last_name => 'Doe')
assert_equal 'John H. Doe', user.full_name
end
def test_full_name_with_blank_middle_initial
user = User.new(:first_name => 'John', :middle_initial => '', :last_name => 'Doe')
assert_equal 'John Doe', user.full_name
end
end
看起来太复杂了是吗?重构!
require File.dirname(__FILE__) + '/../test_helper'
class UserTest < Test::Unit::TestCase
fixtures :users
def test_full_name
assert_equal 'John Doe', full_name('John', nil, 'Doe'), "nil middle initial"
assert_equal 'John H. Doe', full_name('John', 'H', 'Doe'), "H middle initial"
assert_equal 'John Doe', full_name('John', '', 'Doe'), "blank middle initial"
end
def full_name(first, middle, last)
User.new(:first_name => first, :middile_initial => middle, :last_name => last).full_name
end
end
上面的代码将3个测试方法重构为一个,然后在assert语句末尾加上字符串来标识具体测试类型,full_name被提取出来,代码清晰多了。
但有人投出了反对票,不赞成在一个测试方法里有多个assertion,而应该per方法per assertion。
分享到:
相关推荐
world wide web万维网英文课件:ch15-Introduction to Rails.ppt
Rails Docker示例该应用程序的Docker设置来自以下: :入门要开始运行: docker-compose build 然后运行: docker-compose up 要连接到正在运行的应用程序容器,请运行: docker exec -it restarone_app /bin/sh 可以...
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
Rails::Rail::In rails-rail-in 用于查找印度铁路信息,例如火车列表、车站列表、路线、票价、PNR 状态、座位可用性等。 安装 要使用 Bundler 安装,请获取最新的稳定版本: gem 'rails-rail-in' , '~> 1.0.0' ...
### Agile Web Development with Rails Final: Key IT Knowledge Points #### Introduction: Ruby on Rails Framework Ruby on Rails (often shortened as Rails) is a server-side web application framework ...
安装在Gemfile中: gem 'rails-uploader'在航线上: mount Uploader :: Engine => '/uploader' 迁移ActiveRecord: $ bundle exec rails g uploader:install用法存储上传文件的架构(cancan集成): class Asset <...
- 学习如何创建第一个Rails应用程序。 - **过程**: - 创建新项目。 - 设置数据库配置。 - 创建控制器和视图。 - 在浏览器中查看结果。 #### 六、Rails的路由 - **概念介绍**: 路由是连接用户请求URL与应用...
### 重构你的Rails程式码 在进行Rails版本升级时,重构代码是一个绝佳的机会。本文将深入探讨为何这是个好时机来进行重构,并提供一系列实用的方法帮助您优化代码。 #### 为什么这是一个好时机重构代码? 1. **...
##### 第12章:部署与生产使用 - **主要内容**:指导如何将Rails应用部署至生产环境,包括服务器选择、配置优化、监控维护等方面。 - **学习目标**:具备将应用部署上线的能力,并能进行日常运维工作。 通过以上...
自述文件 此应用程序仅使用prometheus-client gem来显示路由/metrics下与流量相关的/metrics 。 信息 根据,我们实际需要的是: Gemfile gem 'prometheus-client' ...docker build -t igiannoulas/rails-w
X :: Editable :: Rails X可编辑的Rails 现场演示 结帐直播演示 安装 将此行添加到您的应用程序的Gemfile中: gem 'x-editable-rails' 然后执行: $ bundle 或自己安装为: $ gem install x-editable-rails 用法...
创建一个名为 blog 的新 Rails 应用程序。 rails new blog 编辑您的 Gemfile 并添加 gem 'rails-backbone' 安装 gem 并生成脚手架。 bundle install rails g backbone:install rails g scaffold Post title:...
博客docker-on-rails 制作博客以了解ruby的好处并通过docker使其对云友好 基于的项目, :rocket: 环境设定 克隆此项目: git clone https://github.com/LuisCusihuaman/docker-on-rails.git 复制默认环境变量: ...
SassC :: Rails 我们都喜欢使用Sass,但是对于较大的代码库,编译可能需要很长时间。 该gem将Sass的C实现集成到资产管道中。 在一个较大的项目中,这使编译速度提高了4倍: # Using sassc-rails[1] pry(main)> ...
- **《The Ruby Way: Solutions and Techniques in Ruby Programming》第二版** - **作者**:Hal Fulton - **ISBN**:9780672328848 - **出版年份**:2007 - **内容概述**:这本书深入介绍了 Ruby 编程语言的...
didww-v3-rails-sample 这是一个简单的Rails应用程序,演示了 gem集成。 有关获取DIDWW API密钥的详细信息,请访问 看到它在上实时运行或本地运行确保已安装 , 和 。 git clone git@github....
在本篇内容中,我们将深入探讨如何利用Ruby on Rails(简称Rails)这一强大的Web应用程序框架来构建可伸缩且易于维护的RESTful API。Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它...