在Ruby 中的实用面向对象设计:敏捷入门中,作者写道,“[一个对象]负责测试它自己的接口,它通过对这些 [传入] 消息返回的结果做出断言来做到这一点。......这些消息需要测试,因为其他应用程序对象依赖于它们的签名和它们返回的结果。”
她解释说,“测试传入消息的第一个要求是证明它在每种可能的情况下都返回正确的值”,将此作为假设类diameter
方法的单元测试示例:Wheel
def test_calculates_diameter
wheel = Wheel.new(26, 1.5)
assert_in_delta(29, wheel.diameter, 0.01)
end
我的问题是,不返回值的传入消息怎么办?我有一个对象,它的公共接口只有两个方法,它们不返回值,而只是改变接收对象的状态。我还需要测试那个对象吗?如果是的话,怎么做?