1

エラーが発生します:

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>

次の仕様を実行しています

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

最初のテストを 0 に初期化していますが、正しく行っているとは思いません。

また、ターミナル ruby​​ の time_string メソッド内でコードを実行すると、正しい時刻が返されます。しかし、 @timer.seconds = 0 または ...seconds = 12 などの場合に送り返す方法がわかりません。

前もって感謝します!

4

0 に答える 0