RSpec与Rails:全面测试指南
1. RSpec基础概念
RSpec中, should() 调用在代码块里有着特定的作用。例如在 me.name 调用中, me 是主体, :name 是其参数,此时代码块相当于 me.name.should == "Noel" 。若参数是字符串,RSpec会假定该字符串是由点分隔的一系列方法名,它会将这些方法应用到主体上,并把最终结果作为代码块中 should() 的接收者。
当 describe() 的参数是类而非字符串,且该类有可无参调用的 initialize() 方法,同时 describe 块中没有明确定义主体时,该类的新实例将被用作隐式主体。可以对隐式主体使用 its() ,示例如下:
describe User do
it { should be_valid }
it { should be_friendless }
its(:name) { should be_nil }
end
不过,隐式主体在多数情况下过于隐晦,不易阅读,但在测试类有无参构造函数且对默认状态有简单规范的场景中,结合Shoulda匹配器使用还是很有效的。
2. RSpec与Rails的集成
RSpec本身并非特定
RSpec与Rails测试全解析
超级会员免费看
订阅专栏 解锁全文
24

被折叠的 条评论
为什么被折叠?



