我想将 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)