Ruby 将seconds参数传递到方法并存储在哪里?将秒转换为字符串00:00:00
我得到一个错误:Ruby 将seconds参数传递到方法并存储在哪里?将秒转换为字符串00:00:00,ruby,timer,string-formatting,instance-variables,datetime-conversion,Ruby,Timer,String Formatting,Instance Variables,Datetime Conversion,我得到一个错误: Timer should initialize to 0 seconds time_string should display 0 seconds as 00:00:00 (FAILED - 1) Failures: 1) Timer time_string should display 0 seconds as 00:00:00 Failure/Error: @timer.seconds = 0 NoMethodError:
Timer
should initialize to 0 seconds
time_string
should display 0 seconds as 00:00:00 (FAILED - 1)
Failures:
1) Timer time_string should display 0 seconds as 00:00:00
Failure/Error: @timer.seconds = 0
NoMethodError:
undefined method `seconds=' for #<Timer:0x007fd68b27c8d8>
我的代码:
我正在将第一个测试初始化为0,但我认为我做得不对
此外,当我在terminal ruby中的time_string方法中运行代码时,它会返回正确的时间。但我只是不知道当@timer.seconds=0或…seconds=12时如何发回
提前谢谢
class Timer def seconds@Timer=0 end def seconds=@Timer end def time\u string@Timer=time.at(@Timer.utc.strftime(“%H:%M:%S”)end
已将其清理干净。是的,我认为我原来的timer=方法设置了@timer值。但我错了。我已经按照你的建议更新了。似乎让我克服了“错误”的未定义方法seconds='。现在它说的论点数目不对。但是规范似乎不接受参数。明白了!将我的代码更新为def seconds=x@timer=x end
。谢谢那是丢失的一块。我不知道可以将方法定义为seconds=。谢谢
require 'timer'
describe "Timer" do
before(:each) do
@timer = Timer.new
end
it "should initialize to 0 seconds" do
@timer.seconds.should == 0
end
describe 'time_string' do
it "should display 0 seconds as 00:00:00" do
@timer.seconds = 0
@timer.time_string.should == "00:00:00"
end
it "should display 12 seconds as 00:00:12" do
@timer.seconds = 12
@timer.time_string.should == "00:00:12"
end
class Timer
def timer=(timer )
@timer = timer
end
def seconds (x = 0)
@timer = x
end
def time_string
Time.at(@timer).utc.strftime("%H:%M:%S")
end
end