サーバープログラムを書き始めて NIO を使い始めているわけですが、非同期プログラミング面白いなあ。
テストケースも書き始めていますが、シングルスレッドのテストのように一般的に確立されていないような気がします。
とりあえず今は 1 テストケースで、条件を満たすまで wait します。別スレッドで条件を満たしたところで notify して assert。一定時間たっても満たせないのであればテスト失敗。みたいなやり方でやっています。
それから外部とやりとりするものがある場合は、スタブとなるサーバーをある程度つくらないとテストができないのがネックです。結合レベルになってしまいますが、マルチスレッドの場合はここが重要でやっておかないと苦労します。
このタイミングでサーバーからデータが送られるテストケースを書こうと思った場合、スタブサーバーを置きローカルから操作できる環境がないと誰もがグリーンバーになるものができません。
面倒で動いていそうだから大丈夫と、実際に動作させて確認をするような手抜きを行うと後々痛い目に遭うので、これからいろいろ試して失敗しつつ安定したコードが書ければいいかなと思っています。