我正在尝试在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}" .../>
我正在尝试单元测试这门课,所以我的
CarViewModel
在我的测试中,课程是测试中的主题(SUT)。
我刚开始研究模拟库/隔离框架,我发现moq非常流行。
我的问题是:
-
因为我在我的
CARVIEW模型
下面,我认为我不需要在我的考试中嘲笑那门课。在我看来,这是一个不应被嘲弄的测试对象。只能模拟依赖项。这是正确的吗?
-
如何进行单元测试以确认
选择命令
已被调用并已设置
SelectedCar
财产?如果我在上面的1中是正确的,那么甚至不需要MOQ来测试这个,因为我不依赖于嘲笑我的
CARVIEW模型
班级。