У меня проблемы с модульным тестированием метода с отменой TokenSource.
Метод SUT очень прост:
public void OnTaskCancellationExecute(object obj)
{
TaskCancellation = true;
TokenSource.Cancel();
CommandCompletedControlsSetup();
}
И вызывается при выполнении команды:
TaskCancellationCommand = new DelegateCommand(OnTaskCancellationExecute);
CommandCompletedControlsSetup
метод, который выполняется после отмены TokenSource
, содержит:
TaskCancellation = false;
Мой метод тестирования:
[Fact]
public void OnTaskCancellationExecute_CancelTask_True()
{
_viewModel.TaskCancellation = false;
_viewModel.TokenSource = new CancellationTokenSource();
_viewModel.TaskCancellationCommand.Execute(null);
Assert.True(_viewModel.TaskCancellation);
}
Отмена всех задач с TokenSource
в SUT занимает некоторое время в работающем решении.Но не в модульном тестировании.Как мне Assert
, чтобы _viewModel.TaskCancellation
было true
, до того, как снова было изменено на false
после вызова CommandCompletedControlsSetup
в тестируемом методе?Или это какая-то проблема с моей архитектурой?Должен ли я создать несколько задач в тестовом методе и каким-либо образом прикрепить токены SUT?