Я полагаю, что каждый, кто смотрел и голосовал по этому вопросу, ждал, чтобы кто-то получил удивительный, изящный ответ, но не похоже, что это произойдет здесь.Чтобы помочь другим, которые нуждаются в пригодном для ответа ответе сейчас ...
То, что я сделал с другими ситуациями модульного тестирования, - это использование AutoResetEvent, как вы упомянули в вопросе:
AutoResetEvent MyAutoReset = new AutoResetEvent();
[TestMethod]
public void MyTestMethod()
{
var MyItem.GetItem(x =>
{
// Return handler
MyAutoReset.Set();
});
MyAutoReset.WaitOne(5000, false));
}
Очевидно,Есть несколько вещей, которые следует учитывать при таком подходе, но он дает представление о себе.