接着010里面的例子,让我们先写User类的单元测试吧
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
运行测试,很遗憾,第3个测试用例没能通过。
class User < ActiveRecord::Base
def full_name
name = first_name + " "
name += "#{middle_initial}. " unless middle_initial.nil?
name += last_name
name
end
end
虽然很好改,但我们决定继续重构一下
class User < ActiveRecord::Base
def full_name
[first_name, middle_initial_with_period, last_name].compact.join(' ')
end
def middle_initial_with_period
"#{middle_initial}." unless middle_initial.blank?
end
end
因为加上了blank?这个方法,因此测试通过。
另外一个考虑是first_name与last_name是否为空,其实我真不是很懂。。
[first_name, middle_initial_with_period, last_name].reject{ |i| i.blank? }.compact.join(' ')
[first_name, middle_initial_with_period, last_name].reject(&:blank?) * ' '
分享到:
相关推荐
用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构_源码.rar.rar
生成changelogchangelog介绍go生成changelog如何生成根据git提交commit历史生成changelog提交格式- docs:文档(d
对经验模态分解后的各分量IMF进行重构代码,函数可直接调用。
1. 创建 Issue - 对于较大的改动(如新功能,大型重构等)最好先开issue讨论一下,较小的improvement(如文档改进,bugfix等)直接发P
牛顿拉普逊法就算配电网重构的潮流程序,结构清晰易懂。
资源名:用于信号的EMD、EEMD、VMD分解_vmd重构_故障诊断emd_故障诊断_故障重构_VMD信号重构 资源类型:matlab项目全套源码 源码介绍:用于信号的分解、降噪和重构,实现故障诊断 源码说明: 全部项目源码都是经过...
利用拉普拉斯先验的压缩感知稀疏重构的贝叶斯方法,具有较好的计算精度
重构——改善既有代码设计,经典文档,架构师必须教程
对图像做小波分解和重构,并对重构后的图像与原始图像进行了对比,计算了重构与原始图像的误差
不同信号稀疏度K下,信号重构概率程序(信号长度N:1-400,M0-300)
医学图像三维重构平台,实现了三维重构用VC++实现
数据库重构.part2数据库重构.part2数据库重构.part2数据库重构.part2
压缩传感重构算法中的子空间追踪算法,用于信号的重构
本程序实现Lena图像的压缩传感,测量矩阵为哈达玛测量矩阵,重构算法采用OMP重构算法
一个对于一维正弦信号的压缩感知恢复算法(正交匹配追踪发)的matlab程序,并绘出恢复图像对比原始图像,且计算出重构误差
omp重构算法程序,压缩感知重构算法,包含测试程序
相空间重构函数,可以直接用于时间序列重构,是混沌方法的基础
用作相空间重构分析的Lorenz 时间序列
对轴承故障信号进行小波包分解,重构能量最大的频段信号,并对该重构信号计算样本熵
基于fanbeam变换的图像重构算法,教科书上的例子,希望对大家学习有帮助