2013-03-21 138 views
-1

嗨需要幫助與此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 

我真的不明白什麼,我需要做的,使這個測試通過,因爲我真的不知道它的要價。如果可以用文字解釋,但實際上並沒有給我的代碼讓它通過,那將是非常棒的!

回答

0

該測試是用於一個必須稱爲repeater

repeater應該接受0或1 PARAMS方法,並且應該接受一個代碼塊,併產生到它

如果提供的參數是的次數以產生到碼塊

如果沒有提供PARAM,repeater應產生的代碼塊的至少一次。

2

第一:這看起來像一個家庭作業。谷歌搜索其中一個測試名稱,變成this

在第一個測試中,repeater方法需要採取的塊,然後將其運行,使得變量被設置。

在第二個試驗中,repeater方法需要採取一個參數,然後通過給定的塊的迭代給定次數。

第三測試是相同的第二測試,除了它應該通過10次,而不是3次迭代。

+0

不是家庭作業我只是想爲自己找出代碼的一部分。 – Evan 2013-03-22 02:23:14

1

正如尼爾說,該方法是這樣的:

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

該方法需要一個號碼和一個塊,如果沒有數獲得通過,將執行該塊只是一個時間。