У меня есть класс в .NET, который создает и запускает новый System.Threading.Tasks.Task
следующим образом:Как модульное тестирование для параллелизма задач
public class ScheduledTask
{
private IFoo _foo;
public ScheduledTask(IFoo foo)
{
_foo = foo;
}
public void Start()
{
_task = new Task(() => Run());
_task.Start();
}
public void Stop(TimeSpan timeout)
{
var taskCompletedNormally = _task.Wait(timeout);
if (taskCompletedNormally)
{
_task.Dispose();
_task = null;
}
}
private void Run(){ // Do some work}
}
Как блок тестирование ScheduledTask.Start
и ScheduledTask.Stop
методы в C# .NET? Каковы рамки, доступные для таких модульных тестов и которые являются наилучшей практикой для потоковой обработки единичного тестирования (или параллелизма задач)?