Unit testing 我是否应该对不使用';不返回值吗?
在中,作者写道,“[一个对象]负责测试自己的接口,它通过断言这些[传入]消息返回的结果来实现这一点……这些消息需要测试,因为其他应用程序对象在其签名和返回的结果上显示。” 她解释说,“测试传入消息的第一个要求是证明它在每种可能的情况下都返回正确的值”,将此作为假设的Unit testing 我是否应该对不使用';不返回值吗?,unit-testing,Unit Testing,在中,作者写道,“[一个对象]负责测试自己的接口,它通过断言这些[传入]消息返回的结果来实现这一点……这些消息需要测试,因为其他应用程序对象在其签名和返回的结果上显示。” 她解释说,“测试传入消息的第一个要求是证明它在每种可能的情况下都返回正确的值”,将此作为假设的轮子类的直径方法的单元测试示例: def test_calculates_diameter wheel = Wheel.new(26, 1.5) assert_in_delta(29, wheel.diameter, 0.01
轮子类的直径方法的单元测试示例:
def test_calculates_diameter
wheel = Wheel.new(26, 1.5)
assert_in_delta(29, wheel.diameter, 0.01)
end
我的问题是,不返回值的传入消息如何?我有一个对象,它的公共接口只有两个不返回值的方法,而只是更改接收对象的状态。我还需要测试那个物体吗?如果是这样,怎么做?在输入问题时,我想我已经意识到了答案:要使用作者的命名法,我应该测试为响应传入消息而发送的传出“命令”消息
对于某些上下文,作者后来写道,“许多传出消息确实有副作用(…由观察者执行的操作),应用程序依赖于这些副作用。这些消息是命令,发送对象的责任是证明它们被正确发送。”
在我的例子中,我的对象是一个容器,当它的状态改变时,它会向它的子对象发送消息,所以对象的测试应该确保这些消息被发送给它的子对象