我正在为一个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"));
}该变量应包含类型为IList的SelectedItems属性。取而代之的是,它返回时设置了System._COMObjects值。另外,我得到一条“信息不可用,没有为Windows.UI.Xaml.dll加载符号”的消息。如何才能获得SelectedItems属性的正确类型?
谢谢
发布于 2016-05-18 22:03:20
在代码的这一部分中
var listView = parameter as ListView;
    if (listView != null)
       return listView.SelectedItems;
    return new ListView();当listview不为空时,您将返回所选项目的列表。但是,当它为空时,您将返回一个新的listview本身。你不认为返回类型应该是相同的吗?
https://stackoverflow.com/questions/37301020
复制相似问题