小编Ray*_*Gan的帖子

如何在 RSpec 中包含模块/测试接口/测试角色?将 POODR 测试代码从 Minitest 转换为 RSpec

我想将 Sandi Metz 在“POODR”中的最终测试代码从 Minitest 翻译为 RSpec。在第 9 章中,她检查“包含 DiameterizedInterfaceTest”的任何对象是否具有“diameter”方法。在这里,它检查 DiameterDouble 和 Wheel 是否都有“直径”方法:

module DiameterizableInterfaceTest
  def test_implements_the_diameterizable_interface
    assert_respond_to(@object, :diameter)
  end
end

class DiameterDouble
  def diameter
    10
  end
end

class DiameterDoubleTest < MiniTest::Test
  include DiameterizableInterfaceTest

  def setup
    @object = DiameterDouble.new
  end
end

class WheelTest < MiniTest::Test
  include DiameterizableInterfaceTest

  def setup
    @wheel = @object = Wheel.new(26, 1.5)
  end

  def test_calculates_diameter
    assert_in_delta(29,
                    @wheel.diameter,
                    0.01)
  end
end
Run Code Online (Sandbox Code Playgroud)

这有效。就这 1 行“include DiameterizableInterfaceTest”就可以了。但是,我不能在 RSpec 中做同样的事情。我试过:

module DiameterizableInterfaceTest
  describe 'object has diameter method' do
    it 'implements …
Run Code Online (Sandbox Code Playgroud)

rspec module minitest

5
推荐指数
2
解决办法
589
查看次数

标签 统计

minitest ×1

module ×1

rspec ×1