On 7 August 2018 at 20:01, Tim Mackinnon <tim@testit.works> wrote: > Hi guys - I’ve been hammering on the exercism project to get pharo shining > over there… its been a good side distraction (there is lots of energy in > that community to) and its made me really push my use of Iceberg & git as > well as learn some fo the newish file reference stuff (still getting good > at that - but like the approach), > > Anyway - I’ve got an Alpha working, and users can pull down a zero conf > pharo image and eval a little script that will get them up and running > (which is pretty slick). > > So the story then goes - Exercism is trying to simulate TDD and help you > learn a new language (aka Pharo or Go or Python etc). To this end, they’ve > got an active community building up little test exercises with suites of > tests that new users can run to help them learn the syntax/essence of the > language track they’ve signed up to. You run the tests, develop your > solution and then submit it to a community to get feedback and then > progress. > > Pretty standard - we can play in this pond too - and it turns out that > Tonel actually makes it pretty easy to submit readable solutions that will > fit on their website. YAY. > > The trouble is - when you pull down a new exercise - I use the TonelReader > to pull the code into your image - and I thought it would be cute to just > pull in the TestCase so that users can simulate the full TDD cycle - where > you can create things in the debugger… this is where it all began right? > > So you hit a clanger when you do this - and in a way its a bit of a legacy > thing we’ve carried around (and possibly should fix better). When Tonel > reads in the TesCase, it normally will reference a class this isn’t there > (I’ve deliberately left the solution out). It does the right thing and put > a nil placeholder in the code so that it can read it in.
For the purpose of Exercism, I think its reasonable for any class referenced by the TestCase to be loaded as an empty stub. Its not really giving the too much of a head start. If they miss seeing the magic of interactively auto-creating a class, oh well, there is plenty of other magic to show them. And if a solution needs a second class, then they might be exposed to it then. KISS. cheers -ben