Я пытаюсь выполнить модульное тестирование команды, но поскольку она является асинхронной командой, метод теста переходит в утверждения до ее завершения. Я искал решения этой проблемы, и все они говорят о создании интерфейса AsyncCommand и т. Д., Что я не хочу делать, так как мне нужно только ждать команд для целей модульных тестов. Так есть ли другое решение, которое проще и не требует создания другого интерфейса и т. Д.
это мой командный класс:
public class Command : ICommand
{
public void Execute(object parameter)
{
//exeute...
}
//other stuff....
}
Это тестируемый класс:
pubic class MyClass
{
private Command commandForTest;
public Command CommandForTest
{
get
{
if (commandForTest == null)
{
commandForTest = new Command(async (o) =>
{
if(someCondition)
await SomeMethod();
else
await AnotheMrthod();
});
}
return commandForTest;
}
}
}
Это метод испытаний:
[TestMethod]
public async Task Test()
{
MyClass myclass = new MyClass();
await Task.Run( () => myclass.CommandForTest.Execute());
//Assert....
}