如何应用if / then语句来反驳/断言方法

时间:2018-05-18 22:39:49

标签: ruby boolean

TDD

gem 'minitest', '~> 5.2'
require 'minitest/autorun'
require 'minitest/pride'
require_relative 'light'

class LightTest < Minitest::Test
 def test_light_is_off
  light = Light.new
  refute light.on?
 end

 def test_turn_light_on

  light = Light.new
  light.turn_on
  assert light.on?
 end
end

CODE

class Light

 def on?
  false
 end

 def turn_on
  true
 end
end

我知道这是非常基本的,试图让测试通过,但我错过了什么?

所以基本上它说,灯最初是关闭的,然后在你定义并调用turn_on方法后,灯应该亮起。因此,第一个测试应该是假的,第二个测试应该在方法运行后为真。

出于某种原因,我不知道如何将其放入代码中。

1 个答案:

答案 0 :(得分:0)

光照状态是物体的状态。

在Ruby中,对象状态保存在实例变量中。

初始状态在初始化程序中设置。

这是您完整的Light课程:

class Light
  def initialize
    @light = false
  end

  def on?
    @light
  end

  def off?
    !on?
  end

  def turn_on
    @light = true
  end

  def turn_off
    @light = false
  end
end