Как подсчитать количество элементов списка в Xamarin UITests

Предположим, у меня есть приложение Xamarin и страница, отображающая список определенных элементов. Я хочу написать тест пользовательского интерфейса, который добавит некоторые элементы, а затем попытается их подсчитать.

У меня есть следующий список:

<ListView x:Name="ListView" Grid.Row="1" ItemsSource="{Binding Items, Mode=TwoWay}" HorizontalOptions="StartAndExpand" VerticalOptions="StartAndExpand"
              BackgroundColor="Transparent" SeparatorVisibility="None" HasUnevenRows="false" Margin="20, 0">
        <ListView.ItemTemplate>
            <DataTemplate>
                    <ViewCell.View>
                        <Grid AutomationId="ListItem" VerticalOptions="FillAndExpand">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="1" />
                                <RowDefinition Height="*" />
                                <RowDefinition Height="1" />
                            </Grid.RowDefinitions>
                            <StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand" VerticalOptions="Center" HeightRequest="38" Grid.Row="1">
                                <!-- item's description -->
                            </StackLayout>          
                        </Grid>
                    </ViewCell.View>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

И мой тест пользовательского интерфейса:

[Test]
    public void CheckForSamplesAdding()
    {
        app.Tap(c => c.Id("PageWithList"));

        // add some items: 

        app.EnterText("inputForItem", "item001");
        app.PressEnter();

        Task.Delay(250);

        app.EnterText("inputForItem", "item002");
        app.PressEnter();

        Task.Delay(250);

        app.EnterText("inputForItem", "item003");
        app.PressEnter();

        Task.Delay(250);

        // assert to check count of listView items
    }

Я думаю, что мне нужно добавить AutomationId в список и как-то описать проверку количества элементов в этом списке. Но я не могу найти никакой информации, как это сделать. Заранее спасибо.


person pavel    schedule 13.04.2018    source источник


Ответы (1)


Легко подсчитать количество элементов, отображаемых на экране, с помощью чего-то вроде этого:

app.Query(x => x.Marked("ListView").Child()).Length

если вы хотите подсчитать все элементы, вам следует использовать бэкдор как в этом ответе.

Другим решением может быть прокрутка, чтобы попытаться найти элемент в списке (полезно, если вы хотите проверить больше, чем просто создание элемента).

person sanjar    schedule 19.04.2018