TaskScheduler.FromCurrentSynchronizationContext - как использовать поток диспетчера WPF при модульном тестировании

У меня есть код в ViewModel, который вызывает службу через задачу. Когда завершится, он заполнит ObservableCollection. Проблема в том, что он ожидает завершения задачи, используя метод ContinueWith и предоставляя TaskScheduler.FromCurrentSynchronizationContext в качестве планировщика задач, чтобы OC обновлялся в потоке пользовательского интерфейса .

Пока все хорошо, но когда дело доходит до модульного тестирования, возникает исключение, в котором говорится, что «текущий SynchronizationContext не может использоваться в качестве TaskScheduler». Если я использую фиктивный SynchronizationContext в модульном тесте , то ObservableCollection выдает ошибку, потому что он обновляется на основе потока диспетчера.

Есть ли способ обойти это?

Спасибо.

18
задан Rayshawn 17 September 2012 в 13:14
поделиться