Я пытаюсь выполнить модульное тестирование Команды в Xamarin.Forms.
В качестве примера я привел свой класс модели представления
public class CarViewModel
{
public Command SelectedCommand { get; } => new Command(OnSelected);
public Car SelectedCar
{
get { return _selectedCar; }
private set { _selectedCar = value; }
}
private void OnSelected(object obj)
{
if (obj is Car car)
{
SelectedCar = car;
}
}
}
Этот класс является BindingContext
на мой взгляд, SelectedCommand
выше срабатывает, когда пользователь нажимает на элемент ListView, так что это метод, который привязан к Command
в XAML с использованием TapGestureRecognizer
подобно
<TapGestureRecognizer Command="{Binding SelectedCommand}" .../>
Iя пытаюсь выполнить модульное тестирование этого класса, поэтому мой CarViewModel
класс является объектом тестирования (SUT) внутри моего теста.
Я только начал изучать насмешливые библиотеки / изолирующие фреймворки и вижу, что Moq довольно популярен.
Мои вопросы:
- Поскольку у меня нет никаких зависимостей в моем
CarViewModel
ниже, я не думаю, что мне нужно высмеивать этот класс в моем тесте.Это предмет испытания, который, на мой взгляд, не должен быть осмеянным.Только зависимости должны быть высмеяны.Это правильно? - Как выполнить модульное тестирование, чтобы подтвердить, что мой
SelectedCommand
был вызван и что он установил свойство SelectedCar
?Если я прав в 1 выше, то Moq даже не нужен для проверки этого, так как у меня нет зависимости, чтобы высмеивать мой класс CarViewModel
.