Você não pode fazer unit test de um protocol distribuído, mas pode fazer model checking
Bugs distribuídos são caros de corrigir após o deploy. O model checking permite que você os encontre antes de escrever uma única linha de código de implementação. Veja como fazer isso com TLA+.