Ruby Rspec测试

时间:2013-03-21 22:13:33

标签: ruby rspec

你需要帮助这个rspec测试我尝试通过某种方法。问题是我不知道它的要求。这是我试图通过的测试。

describe "repeater" do
  it "executes the default block" do
    block_was_executed = false
    repeater do
      block_was_executed = true
    end
    block_was_executed.should == true
  end

  it "executes the default block 3 times" do
    n = 0
    repeater(3) do
      n += 1
    end
    n.should == 3
  end

  it "executes the default block 10 times" do
    n = 0
    repeater(10) do
      n += 1
    end
    n.should == 10
  end
end

我没有真正得到我需要做的事情来让这个测试通过,因为我真的不知道它的要求。如果可以用文字解释而不实际给我代码让它通过那将是非常棒的!

3 个答案:

答案 0 :(得分:2)

首先:这似乎是一项家庭作业。用Google搜索其中一个测试名称后,会显示this

在第一个测试中,repeater方法需要一个块,然后运行该块以便设置变量。

在第二个测试中,repeater方法需要接受一个参数,然后在给定的块中迭代给定的次数。

第三次测试与第二次测试相同,但它应该迭代10次而不是3次。

答案 1 :(得分:1)

正如尼尔所说,方法如下:

def repeater(n=1, &block)
  n.times &block
end

该方法需要一个数字和一个块,如果没有传递数字,它将只执行一次该块。

答案 2 :(得分:0)

测试是针对必须调用repeater

的方法

repeater应该接受0或1个参数,并且应该接受代码块并屈服于它

提供的参数是产生代码块的次数

如果没有提供参数,repeater应该至少对代码块产生一次。