测试 关于 rspec 中 its 的功能的疑问

iancui · 2014年11月02日 · 最后由 iancui 回复于 2014年11月03日 · 2155 次阅读

在练习的过程中看到例子上写了这么一句

let(:user) { FactoryGirl.create(:user) }
......
its(:user) { should eq user }

上面的 its 时什么意思,而且我在自己的程序中写了之后会报错,说 its 方法找不到,希望能得到解答。

语法糖,新版本里应该没有了,检查一下你用的版本。

顺便一提,这种语法已经被废弃了,你看的教程应该是落伍了。

在 3.x 的时候已经被拆出一个单独的 Rubygem,如果你需要用可以在 Gemfile 里加上

gem "rspec-its"

Github 地址 https://github.com/rspec/rspec-its

RSpec 2.x 中,it 会寻找subject的值. 如

before { @user = User.create }
subject { @user }
it { should respond_to(:to_s) }  

这里 it 就是指 @user

而且,如前两位所说,it, its, should已经被 RSpec 3 取消了 (changelog - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3)

4 楼 已删除

那 its 这个方法有没有落伍呀,还要不要用了?

需要 登录 后方可回复, 如果你还没有账号请 注册新账号