Yes, but in that case you stub messages to the class itself. For your example it means:
Something stub askForName willReturn: 'new'. Something askForName should be: 'new' 2017-10-20 13:58 GMT+02:00 Peter Uhnák <i.uh...@gmail.com>: > Thanks Denis, that did the trick. > > But I thought that I can also mock at the class level (at least it was > shown in the docs). > > Peter > > On Sat, Oct 7, 2017 at 11:24 AM, Denis Kudriashov <dionisi...@gmail.com> > wrote: > >> Hi Peter. >> >> You should stub instance instead of class: >> s := Something new. >> s stub askFor... >> >> 7 окт. 2017 г. 9:18 пользователь "Peter Uhnák" <i.uh...@gmail.com> >> написал: >> >> Hi, >>> >>> maybe I am missing something fundamental, because this seems like an >>> obvious scenario >>> >>> I have a class Something with two methods >>> >>> Something>>askForName >>> ^ UIManager default request: 'Name' >>> >>> Something>>name >>> ^ self askForName , ' suffix' >>> >>> Now I want to mock out askForName, so I can run it automatically in >>> tests... >>> >>> I've tried just stubbing it... >>> >>> SomethingTest>>testRenameStub >>> Something stub askForName willReturn: 'new'. >>> Something new name should be: 'new suffix' >>> >>> however it still opens the window to ask for the name, so the original >>> method is being called. >>> >>> Right now I have to stub it with metalinks, which doesn't play well with >>> some tools (hapao) >>> >>> SomethingTest>>testRenameMeta >>> | link newName | >>> link := MetaLink new >>> metaObject: [ 'new' ]; >>> control: #instead. >>> (Something >> #askForName) ast link: link. >>> [ newName := Something new name ] >>> ensure: [ link uninstall ]. >>> self assert: newName equals: 'new suffix' >>> >>> Thanks, >>> Peter >>> >>> >