I think we should follow scalatest conventions as much as possible.

I believe awaitAssert() can be fully substituted here with the Eventually construct. (Unfortunately, I didn't use it initially because I'm newbie to scalatest but I'm keen on conventions and I also prefer reusing.)

However, I do have problems with within(). As I look into the implementation I don't see any forced timing constraint. The within() will nicely wait for the inside block to complete only then make a judgment if the block completed within the given timeout. What if the block runs infinitely?! Will the within() wait for the eternity and then say oops? I think this has to be revised.

But as I promised to Patrick, once this change is approved in a separate project I'd like to factor out the stuff independent from the implicit actor system of TestKit into separate trait(s). Because the big issue here is that I cannot use TestKit as I manually create an actor system and investigate the threads created by.

So to sum up my suggestion is to separate the two things:
- solve this issue, using scalatest's toolkit
- revise Akka's TestKit (factor out actor system independent stuff), also review within() and awaitAssert() (not now)