我正在将我最喜欢的 Java/JavaScript Mocktito 库移植到 Smalltalk。我目前正处于实施 Spy 以对真实对象进行存根的阶段。当一个被监视的对象调用它自己的被存根的方法时,我的问题就出现了。代替:
self aMethod.
我宁愿将调用委托给 spy 对象:
spyObject aMethod.
这是预期行为的场景测试:
realObject := RealObjectForTesting new.
spyedObject := Spy new: realObject.
spyedObject when: #accesorWhichReturnsValue thenReturn: 'stubbed value'.
spyedObject accesorWhichCallsSelf.
self assert: (spyedObject verify: #accesorWhichReturnsValue).
有什么建议吗?