I really don't see a way to move checkUsability() inside the request cycle. There is no information about the component/behavior at that point (it gets resolved at later point when it is too late to make the check and actually is inside Wicket core core, not WicketTester).
As I said earlier I see two solutions:
1) make it 'protected' so you can override it to do what you need if needed
2) remove it completely
I prefer 1).
checkUsability() may not be perfect and doesn't cover all cases but seems to be good enough for most of them.
Other opinions ?