我正在为UWP(Windows 10)项目创建单元测试。我正在测试一个价值转换器。该 转换器应返回,如果一切正常,则返回ListView控件的SelectedItems属性。 这是转换器:
internal class MultipleSelectionChangedConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var listView = parameter as ListView;
if (listView != null)
return listView.SelectedItems;
return new ListView();
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
我正在尝试检查此单元测试中的结果:
[UITestMethod]
[TestCategory("Multiple Selection Changed Converter")]
public void ShouldSetSelectedItems()
{
IList<object> results = null;
var listToSetSelectedItems = new ListView
{
ItemsSource = new List<string> { "item 1", "item 2", "item 3", "item 4" },
SelectionMode = ListViewSelectionMode.Multiple,
};
listToSetSelectedItems.SelectedItems.Add("item 1");
listToSetSelectedItems.SelectedItems.Add("item 2");
results = (IList<object>)converter.Convert(null, typeof(IList<object>), listToSetSelectedItems, string.Empty);
Assert.IsTrue(results != null);
Assert.IsTrue(results.Count == 2);
//Assert.IsTrue(results.Contains("item 1"));
//Assert.IsTrue(results.Contains("item 2"));
}
该变量应包含SelectedItems属性,该属性的类型为IList。相反,它返回设置System._COMObjects值。 此外,我收到“信息不可用,没有为Windows.UI.Xaml.dll加载符号”消息。我该怎么做才能获得SelectedItems属性的正确类型?
由于
答案 0 :(得分:2)
在代码的这一部分
var listView = parameter as ListView;
if (listView != null)
return listView.SelectedItems;
return new ListView();
当listview不为null时,您将返回所选项目的列表。但是当它为null时,您将返回一个新的列表视图本身。不要认为回报类型应该相同。