I think this way is more robust.  A test class would presumably have a single, shared figure that all the callback test use.  I don't fully trust key_press_events *cough*macos*cough* to actually get fired.  In the event that one doesn't fire, the test will eventually time out.  I don't know what cascade gets launched if I'm using a class based test with a shared figure and one of the tests times out.

That and I like functions : )