Mock := Object clone do( newSlot("name", "unnamed") newSlot("nullObject", false) newSlot("expectedMessage") init := method( should = should clone setMock(self) ) should := Object clone do( newSlot("mock") receive := method( mock setExpectedMessage(call argAt(0) name) ) ) forward := method( if(expectedMessage != call message name, writeln("Expected message '", expectedMessage, "' got '", call message name, "'.") currentCoro showStack ) nil ) )