以下(rspec)代码行之间有什么区别,无论它们是相同还是不同,何时使用一个而不是另一个?
book = double("book")
allow(book).to receive(:title) { "The RSpec Book" }
Run Code Online (Sandbox Code Playgroud)
与
book = double("book")
book.stub(:title).and_return("The RSpec Book")
Run Code Online (Sandbox Code Playgroud) 在开发Ruby 2.1之后,我已经阅读了一个可能会添加的功能,因此允许开发人员指定文字字符串应该从"冻结"开始.
语法如下所示(注意尾随f):
str = "imfrozen"f # str receives a frozen string
Run Code Online (Sandbox Code Playgroud)
在其他Ruby文档/维基中,我读过这个功能提供了以下好处:
这允许VM每次使用相同的String对象,并且可能跨越许多文件使用相同的冻结字符串.它显然也提供了冻结字符串的所有不变性保证.
我的问题是:
symbol什么不同?谢谢