2013-07-01 146 views
0

Practical Object-Oriented Design in Ruby: An Agile Primer,作者写道,“[对象]是负责测试自己的接口,它通过使关于结果的说法,这些[进入]消息返回这样做。......这些消息需要测试,因为其他应用程序对象dpeend上他们的签名和他们返回的结果。“我应该单元测试不返回值的消息吗?

她解释,“用于测试传入消息的第一个要求是要证明,它在每一个可能的情况返回正确的值,”给这个作为一个例子的单元测试用于diameter方法针对一种假设的Wheel类:

def test_calculates_diameter 
    wheel = Wheel.new(26, 1.5) 
    assert_in_delta(29, wheel.diameter, 0.01) 
end 

我的问题是,那些没有返回值的传入消息呢?我有一个对象的公共接口只有两个方法不返回一个值,而只是改变接收对象的状态。我还需要测试该对象吗?如果是这样,怎么样?

回答

0

在输入问题时,我想我已经意识到了答案:为了使用作者的命名法,我应该测试为响应传入消息而发送的传出“命令”消息

对于某些情况下,作者后来写道:“许多传出的消息确实有应用程序所依赖的副作用(观察者采取行动),这些消息是命令,它是发送的响应反对证明他们被正确送出。“

就我而言,我的目标是将消息发送到其子容器时,其状态的变化,使对象的试验应确保这些消息被发送给它的孩子。

相关问题