I couldn’t go on for much longer in Io without somehow testing my code. I’m okay with printing out results for a little while, but as soon as i come to refactoring my code i feel the need to assert somehow the results i’m expecting.
I had a nice chat with Matt Pep about it and tried a few things before i came to the idea of adding a shouldEqual slot on Object so that anything can assert equality.
Object shouldEqual := method(expected,
if(self == expected,
"." print,
("Expected " .. self .. " to equal " .. expected) println
)
)
This means i can do a few things like this:
myList := List2d clone myList dim(3, 5) myList items size shouldEqual(5)
And things like this:
myList set(2, 3, "Middle")
myList get(2, 3) shouldEqual("Middle")
The only question i have now is: how do i take that assertEqual slot definition out of this file and into a file of its own that i can include everywhere from now on?
I’d like to do something like:
require('testFramework.io')
How would you do such a thing in Io?
I’m afraid i still haven’t finished Day 2′s exercises yet! I must move on to Day 3 tomorrow …! :)
Update
Susan Potter has found the answer! I will try this later: Io’s “require”