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 >> >>