【发布时间】:2013-05-01 03:25:00
【问题描述】:
以下是来自 Test-First.org 的练习 #5(愚蠢的块)的一部分,我在自学时尝试破解它,为 Ruby 课程做准备。
每个练习都附带一个 RSpec '_spec.rb' 文件,用户需要编写一个相应的 Ruby 代码 '.rb' 文件,并继续“rake”直到满足其中的所有 RSpec 测试(示例) .至少这是我的解释,并且我已经完成了前四个练习,但是,这个练习中的 RSpec 语法让我很难过。 (不幸的是,我不仅对编码很陌生,而且我对 RSpes 也很陌生,而且我还无法在线找到一个好的新手级 RSpec/TDD 介绍)。
因此,我希望 RSpec 常驻专家能提供帮助。基本上,我想知道下面的 RSpec 语法到底是什么告诉我写代码?
require "silly_blocks"
describe "some silly block functions" do
describe "reverser" do
it "reverses the string returned by the default block" do
result = reverser do
"hello"
end
result.should == "olleh"
end
...
我假设我要编写一个名为“reverser”的方法,它接受一个字符串参数,并返回反转的字符串,例如:
def reverser(string)
return string.reverse
end
唉,这显然是不正确的 - 耙子惨败:
some silly block functions
reverser
reverses the string returned by the default block (FAILED - 1)
Failures:
1) some silly block functions reverser reverses the string returned by the def
ault block
Failure/Error: result = reverser do
ArgumentError:
wrong number of arguments (0 for 1)
# ./05_silly_blocks/silly_blocks.rb:3:in `reverser'
# ./05_silly_blocks/silly_blocks_spec.rb:15:in `block (3 levels) in <top (r
equired)>'
我怀疑它与传递“默认代码块”有关,但我不确定如何构建它。在这个练习中还有很多方法可以写,但是,如果我能对最初的方法有所了解,我想我可以解决剩下的!
非常感谢,Danke sehr,Muchas gracias! :)
【问题讨论】: