2016-05-18 19 views
1

私はUWP(Windows 10)プロジェクトの単体テストを作成しています。私はバリューコンバータをテストしています。 コンバータは、すべてが正常であれば、ListViewコントロールのSelectedItemsプロパティを返します。私はこのユニットテストで結果を確認しようとしているUWP ValueConverterがSystem._COMObjectを返します

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プロパティの正しい型を取得するにはどうすればよいですか?リストビューがnullでないとき

おかげ

+0

* "変数にはSelectedItemsプロパティが含まれている必要があります" * - どの変数? * "はIList" *タイプのものです - あなたは 'IList 'を使用していませんか? * "それはSystem._COMObjectsで設定されて戻ってきます" * - これは 'System .__ COMObject'ではないのですか? – IInspectable

+1

テストに失敗しました。そのコンバータはボルケンです。バグ報告を書いてください。 –

答えて

2

はあなたのコード

var listView = parameter as ListView; 

    if (listView != null) 
     return listView.SelectedItems; 

    return new ListView(); 

のこの部分では、選択した項目のリストを返しています。しかし、それがnullの場合は、新しいリストビュー自体を返します。戻り値の型は同じでなければならないと思いませんか?

関連する問題