2012-03-22 43 views
2

比方說,我需要存根方法,因此返回當前時間: MyClass.stub(:my_method).and_return(Time.now.utc)在運行時而不是在存根聲明處執行rspec存根?

的問題是,這個存根在存根聲明返回時間,而不是當我運行MyClass.new.my_method。

當方法被調用時,有沒有辦法讓存根運行?

回答

1

傳遞一個塊and_return,你想要在運行時完成,像這樣的工作...

describe MyClass do 

    it "runs at runtime" do 
    puts Time.now.utc 

    MyClass.stub(:my_method).and_return do 
     Time.now.utc 
    end 
    sleep 5.seconds 

    puts MyClass.my_method 
    end 
end