Existe uma maneira de testar um método assíncrono?

Estou usando o Xunit e o NMock na plataforma .NET. Eu estou testando um modelo de apresentação onde um método é assíncrono. O método cria uma tarefa assíncrona e a executa para que o método retorne imediatamente e o estado que preciso verificar ainda não está pronto.

Eu posso definir um sinalizador ao terminar sem modificar o SUT, mas isso significaria que eu teria que continuar verificando o sinalizador em um loop while, por exemplo, talvez com tempo limite.

Quais são minhas opções?

questionAnswers(4)

yourAnswerToTheQuestion