WEBVTT

00:00:00.000 --> 00:00:02.790
>> Não há reinicialização em
meu temporizador para que eu saiba onde estou.

00:00:02.790 --> 00:00:06.030
Olá a todos. Boa tarde.

00:00:06.030 --> 00:00:10.170
Como vai o almoço? Todos desfrutaram
Este picles gigantes? Eu sei que sim.

00:00:10.170 --> 00:00:12.315
Sim, incrível.

00:00:12.315 --> 00:00:17.565
Portanto, esta sessão é
sobre os testes U (I),

00:00:17.565 --> 00:00:19.935
Portanto, você U (I) teste?

00:00:19.935 --> 00:00:22.950
Então, antes de eu começar, este é
minha pergunta favorita no mundo.

00:00:22.950 --> 00:00:24.705
Isto é fácil.

00:00:24.705 --> 00:00:29.175
Quantas pessoas escrevem
Testes? Mostre as mãos.

00:00:29.175 --> 00:00:31.830
Todos no riacho,
Isso é muito poucas mãos.

00:00:31.830 --> 00:00:34.305
Estou surpreso, estou muito feliz.

00:00:34.305 --> 00:00:38.290
Agora, quantos de vocês U (I) teste?

00:00:39.130 --> 00:00:41.705
Nada mal, isso é incrível.

00:00:41.705 --> 00:00:44.060
Bem, então esta sessão é basicamente,

00:00:44.060 --> 00:00:48.635
e então eu não vou estar fazendo
o básico de como U (I) trabalho de teste,

00:00:48.635 --> 00:00:51.350
Há um monte de bom conteúdo
lá fora já para isso.

00:00:51.350 --> 00:00:54.185
É super simples, é
examinar o teste U (I).

00:00:54.185 --> 00:00:56.735
A estrutura que eu estarei
falando hoje é

00:00:56.735 --> 00:00:58.070
literalmente apenas feito para

00:00:58.070 --> 00:01:00.740
fazendo U (I) teste super
simples e super grande.

00:01:00.740 --> 00:01:04.820
Então, o que estamos falando hoje
são as melhores práticas e como

00:01:04.820 --> 00:01:08.000
escrever algo que
foi falado muito

00:01:08.000 --> 00:01:11.195
no Keynote de hoje,
teste de U (I) de plataforma cruzada.

00:01:11.195 --> 00:01:14.435
Então, quem sou eu?

00:01:14.435 --> 00:01:16.220
Tenho quase a certeza que ninguém me conhece.

00:01:16.220 --> 00:01:19.715
Eu não sou tão famoso como
muito, mas eu sou o Sweeky.

00:01:19.715 --> 00:01:24.250
Eu trabalho no que chamamos de
Equipe de consultoria de clientes DevOps,

00:01:24.250 --> 00:01:25.950
e eu estou no subconjunto que é chamado

00:01:25.950 --> 00:01:28.570
a equipe de assessoria ao cliente móvel.

00:01:28.730 --> 00:01:31.260
Somos um bando de pessoas muito fixes.

00:01:31.260 --> 00:01:32.905
Nós amamos Xamarin, nós amamos Mobile,

00:01:32.905 --> 00:01:35.000
e nós trabalhamos em fazer clientes

00:01:35.000 --> 00:01:37.310
feliz e nós trabalhamos em fazer
nossos produtos melhor.

00:01:37.310 --> 00:01:39.710
Então, nós dirigimos um monte de feedback,

00:01:39.710 --> 00:01:42.025
Então qualquer coisa que você quer dizer,

00:01:42.025 --> 00:01:44.270
Celular que você quer discutir,

00:01:44.270 --> 00:01:47.015
tênis, qualquer coisa,
Apenas venha me encontrar.

00:01:47.015 --> 00:01:50.240
Trabalho no escritório de São Francisco.

00:01:50.240 --> 00:01:53.575
Eu sou conhecido por código para doces,

00:01:53.575 --> 00:01:56.055
por isso, se você nunca me quer
para escrever testes U (I),

00:01:56.055 --> 00:01:58.170
Você sabe como me subornar, e eu sou

00:01:58.170 --> 00:02:01.660
uma Microsoft Die-Hard e
um ventilador Xamarin Die-Hard.

00:02:03.380 --> 00:02:05.670
Agora que você sabe quem eu sou,

00:02:05.670 --> 00:02:08.070
Siga-me no Twitter, ser meu amigo.

00:02:08.070 --> 00:02:10.110
Vamos fazer testes.

00:02:10.110 --> 00:02:13.035
Então Xamarin U (I) teste.

00:02:13.035 --> 00:02:15.045
Para aqueles que não estão familiarizados,

00:02:15.045 --> 00:02:21.030
é unidade baseada em NUnit
quadro de testes,

00:02:21.030 --> 00:02:24.435
Mas em C Sharp, e permite que
você escreva U (I) teste.

00:02:24.435 --> 00:02:27.434
Destina-se a ser usado
com plataformas móveis,

00:02:27.434 --> 00:02:30.505
para que seus aplicativos nem sempre
tem que ser um aplicativo Xamarin,

00:02:30.505 --> 00:02:32.690
para que eles possam ser um aplicativo ReactNative,
Eles podem ser nativos,

00:02:32.690 --> 00:02:33.980
Android ou iOS App,

00:02:33.980 --> 00:02:36.425
Você ainda pode escrever
U (I) teste para eles.

00:02:36.425 --> 00:02:39.420
Se você está familiarizado
com a forma como o NUnit funciona,

00:02:39.420 --> 00:02:42.065
sua sintaxe ou o teste irá
olhar muito familiar para você.

00:02:42.065 --> 00:02:43.280
Então, há uma marca de equipamento de teste,

00:02:43.280 --> 00:02:46.220
Há uma etiqueta de teste, você está
fazendo alguma configuração antes de um teste,

00:02:46.220 --> 00:02:48.380
você executar o teste, e então você

00:02:48.380 --> 00:02:51.140
pode ter algo que
acontece após o teste.

00:02:51.140 --> 00:02:54.515
Por favor, direto,
Teste do Xamarin U (I),

00:02:54.515 --> 00:02:57.620
Você pode executar esses testes
localmente, e então se você quiser,

00:02:57.620 --> 00:02:59.480
Você pode usar o aplicativo
servidores de teste de centro e

00:02:59.480 --> 00:03:02.155
em seguida, execute seus testes
em nossos laboratórios de dispositivos.

00:03:02.155 --> 00:03:06.020
Ele também se integra muito bem
com seus dutos CICD,

00:03:06.020 --> 00:03:08.825
que é a minha parte favorita
de todo o processo.

00:03:08.825 --> 00:03:12.000
Assim, a descrição da
a palestra disse muito

00:03:12.000 --> 00:03:15.140
sobre o pop do padrão de objeto de página.

00:03:15.140 --> 00:03:17.510
Então, o que é isto exactamente?

00:03:17.510 --> 00:03:20.765
Então vamos falar dessa maneira.

00:03:20.765 --> 00:03:25.550
Os aplicativos móveis geralmente vêm com
um monte de visões diferentes,

00:03:25.550 --> 00:03:27.740
Quando realmente escrevemos aplicativos Xamarin,

00:03:27.740 --> 00:03:30.470
Temos um monte de
visualizações, se for MVVM,

00:03:30.470 --> 00:03:32.060
Você tem suas opiniões
e você tem o código

00:03:32.060 --> 00:03:33.830
por trás de cada visão, isso e aquilo,

00:03:33.830 --> 00:03:35.850
conceito tão simples, acho que

00:03:35.850 --> 00:03:38.400
do seu aplicativo sendo um bando
de páginas diferentes,

00:03:38.400 --> 00:03:40.560
Então, quando você quer escrever

00:03:40.560 --> 00:03:42.930
os testes U (I) com
o padrão de objeto de página,

00:03:42.930 --> 00:03:44.450
Nós vamos tratar cada página

00:03:44.450 --> 00:03:47.540
individualmente como
sua própria classe independente.

00:03:47.540 --> 00:03:51.035
Então, elementos nessa página
viver nesta classe,

00:03:51.035 --> 00:03:52.730
interações que você pode fazer com

00:03:52.730 --> 00:03:55.145
Estes elementos vivem
dentro dessa mesma classe.

00:03:55.145 --> 00:03:57.790
Então, se você tem um botão na página a,

00:03:57.790 --> 00:04:01.880
todo o código na página
classe de um seria uma consulta sobre

00:04:01.880 --> 00:04:03.320
como o sistema vai encontrar

00:04:03.320 --> 00:04:06.410
Esse botão e qualquer método
para interagir com um botão.

00:04:06.410 --> 00:04:10.250
Então, clique em um botão
ou se é uma lista,

00:04:10.250 --> 00:04:11.485
Então deslize em uma lista,

00:04:11.485 --> 00:04:13.790
todos esses métodos para
que uma página vive lá.

00:04:13.790 --> 00:04:15.125
Página b para o seu aplicativo,

00:04:15.125 --> 00:04:18.215
classe separada, completamente
tem suas próprias coisas.

00:04:18.215 --> 00:04:23.030
A idéia principal por trás de fazer
Este é o fato de que,

00:04:23.030 --> 00:04:25.285
desde que você está separando
todas essas páginas,

00:04:25.285 --> 00:04:27.275
é realmente fácil de manter.

00:04:27.275 --> 00:04:29.840
Então, suponha que você vá em
e você faz uma mudança

00:04:29.840 --> 00:04:32.710
apenas para gostar talvez o
página de configurações em seu aplicativo,

00:04:32.710 --> 00:04:34.310
Tudo que você tem que ir fazer é ir

00:04:34.310 --> 00:04:36.035
para a página de configurações
do seu teste e apenas

00:04:36.035 --> 00:04:37.475
atualizar os valores lá e que é

00:04:37.475 --> 00:04:39.605
seu teste está de volta a funcionar novamente.

00:04:39.605 --> 00:04:41.460
Então é super fácil de manter,

00:04:41.460 --> 00:04:43.620
super fácil de escalar para fora,

00:04:43.620 --> 00:04:45.990
e depois vem a minha melhor parte favorita

00:04:45.990 --> 00:04:48.490
deste padrão que
faz através da plataforma.

00:04:48.490 --> 00:04:51.775
Assim, essa mesma página pode
Existem no iOS ou Android.

00:04:51.775 --> 00:04:56.005
Então, o que poderia ser o possível
nenhum fator diferenciador aqui?

00:04:56.005 --> 00:04:58.790
No Android, o botão pode ter

00:04:58.790 --> 00:05:01.260
uma consulta separada e, em seguida, também

00:05:01.260 --> 00:05:02.460
Talvez haja um pouco de um

00:05:02.460 --> 00:05:04.110
nenhum comportamento de toque que é diferente,

00:05:04.110 --> 00:05:07.535
para que você possa lidar com isso em seu código
com as verificações no dispositivo.

00:05:07.535 --> 00:05:09.260
Então, novamente, super simples,

00:05:09.260 --> 00:05:10.520
super fácil de configurar,

00:05:10.520 --> 00:05:12.965
e veremos mais sobre isso agora.

00:05:12.965 --> 00:05:15.230
Então o que eu estava falando

00:05:15.230 --> 00:05:17.760
sobre visualmente apenas
imaginando a coisa toda.

00:05:17.760 --> 00:05:20.485
Então, estes são diferentes
páginas do seu aplicativo,

00:05:20.485 --> 00:05:23.855
Pegue cada página e vire
cada página em uma classe,

00:05:23.855 --> 00:05:26.420
que é literalmente como os primeiros passos

00:05:26.420 --> 00:05:29.075
de escrever a página
padrão de objeto é iniciado.

00:05:29.075 --> 00:05:33.840
Então, se você quer ser um
pouco mais chique sobre isso,

00:05:33.840 --> 00:05:35.855
Quando você terminar de configurar

00:05:35.855 --> 00:05:37.130
todo o padrão de arquitetura e

00:05:37.130 --> 00:05:38.440
Quando você voltar e
Você olha para os seus testes,

00:05:38.440 --> 00:05:39.650
Nunca vai ser

00:05:39.650 --> 00:05:41.660
um ponto que você sente como,
"Oh, o que eu escrevi?

00:05:41.660 --> 00:05:43.280
O que isso significa? "
Vai haver

00:05:43.280 --> 00:05:46.720
uma correlação direta entre
seu aplicativo e seus testes.

00:05:46.720 --> 00:05:51.120
Então ele só faz tanto
mais agradável para escrever seus testes,

00:05:51.120 --> 00:05:54.710
Eu me sinto como ele só incentiva
todos para reservar,

00:05:54.710 --> 00:05:56.555
manter e escrever um bom teste U (I),

00:05:56.555 --> 00:05:59.065
que eu acho que é muito importante.

00:05:59.065 --> 00:06:01.020
Se eu puder, eu vou dizer,

00:06:01.020 --> 00:06:02.395
Eu digo isso o tempo todo,

00:06:02.395 --> 00:06:05.900
Mas vivemos na era da
aplicativos móveis e vivemos na era

00:06:05.900 --> 00:06:07.130
de tornar os clientes e

00:06:07.130 --> 00:06:09.530
seus usuários realmente feliz
com seus aplicativos móveis.

00:06:09.530 --> 00:06:11.360
Se você não U (I) testá-los,

00:06:11.360 --> 00:06:12.890
Há um subconjunto mínimo de

00:06:12.890 --> 00:06:15.890
10 por cento que não estão recebendo
a melhor aparência visual de

00:06:15.890 --> 00:06:17.600
seu aplicativo apenas porque
Você nunca testou-lo em

00:06:17.600 --> 00:06:20.900
que um telefone obsoleto
que alguém está usando.

00:06:20.900 --> 00:06:22.985
É assim que você pode
alavancagem U (I) testes

00:06:22.985 --> 00:06:24.680
e o centro de aplicativos e
Certifique-se de que seu aplicativo

00:06:24.680 --> 00:06:26.390
Parece bonito e corre muito bem

00:06:26.390 --> 00:06:28.930
em todas as diferentes plataformas
que estão tentando suportar.

00:06:28.930 --> 00:06:34.940
Então a próxima coisa incrível sobre
o padrão de objeto de página é,

00:06:34.940 --> 00:06:38.615
Se você tiver escrito U (I) teste
antes ou se você não tiver,

00:06:38.615 --> 00:06:41.645
Isso é basicamente o que um
simples U (I) teste parece.

00:06:41.645 --> 00:06:43.100
Então você tem, como eu disse,

00:06:43.100 --> 00:06:44.630
é muito semelhante ao
o padrão NUnit,

00:06:44.630 --> 00:06:47.415
que você tem que configurar, e
Você tem o teste real,

00:06:47.415 --> 00:06:48.745
e no teste, se você olhar,

00:06:48.745 --> 00:06:51.725
tem uma linha muito longa que diz,

00:06:51.725 --> 00:06:54.260
App. Toque e, em seguida, ele está tentando

00:06:54.260 --> 00:06:57.685
encontrar um elemento em
a tela pelo seu ID.

00:06:57.685 --> 00:07:01.190
A beleza de usar
o padrão de objeto de página é,

00:07:01.190 --> 00:07:03.680
torna-se um pouco mais
genérico no sentido de que,

00:07:03.680 --> 00:07:05.705
Lembre-se dessas páginas
Eu estava falando,

00:07:05.705 --> 00:07:09.370
Ele literalmente se torna
na página de login,

00:07:09.890 --> 00:07:12.450
executar a ação de login,

00:07:12.450 --> 00:07:14.480
e, em seguida, usar este nome de usuário
e senha.

00:07:14.480 --> 00:07:17.210
Assim, torna mais fácil de ler também.

00:07:17.210 --> 00:07:19.520
Então, novamente, se alguém que está
Não fez o teste antes,

00:07:19.520 --> 00:07:21.080
Não é realmente, "Oh,

00:07:21.080 --> 00:07:23.470
Meu Deus, como vou
escrever um teste C Sharp?

00:07:23.470 --> 00:07:25.275
Eles podem apenas vir
e ser como, "Oh,

00:07:25.275 --> 00:07:26.610
Isso só lê como Inglês,

00:07:26.610 --> 00:07:27.915
Isso não é tão difícil de entender,

00:07:27.915 --> 00:07:29.940
Eu sei o que está acontecendo neste teste.

00:07:29.940 --> 00:07:34.470
Para que eu possa continuar
sobre e sobre como este,

00:07:34.470 --> 00:07:36.325
Mas isso não é divertido.

00:07:36.325 --> 00:07:39.305
O que eu realmente vou fazer agora é,

00:07:39.305 --> 00:07:41.420
Eu vou mudar e realmente

00:07:41.420 --> 00:07:43.820
escrever um teste de botão de objeto de página
para você agora,

00:07:43.820 --> 00:07:47.100
Porque quem não
como alguma codificação ao vivo?

00:07:47.930 --> 00:07:52.590
Então, enquanto eu tiver essa coisa configurada.

00:07:52.590 --> 00:07:55.760
Então isso se tornou um
hobby do meu lado.

00:07:55.760 --> 00:07:59.815
Então, este é um aplicativo que
meu bom amigo James Clancy,

00:07:59.815 --> 00:08:03.660
Se você se lembra dele de
Xamarin evoluir 2016,

00:08:03.660 --> 00:08:06.170
Ele deu a minha conversa favorita
em Async Await,

00:08:06.170 --> 00:08:08.210
definitivamente dessacado
vídeos no YouTube.

00:08:08.210 --> 00:08:11.490
Mas assim, ele tem sido
trabalhando em seu Gmusic,

00:08:11.490 --> 00:08:14.870
algum empréstimo do Google Music e ele é
Reescrevendo seu Google,

00:08:14.870 --> 00:08:16.730
por isso era originalmente apenas para iOS,

00:08:16.730 --> 00:08:18.430
Ele está reescrevendo para as empresas,

00:08:18.430 --> 00:08:20.640
e ele é uma fonte aberta
projeto que ele ensina

00:08:20.640 --> 00:08:23.700
toda quarta-feira, você
Só deve verificá-lo.

00:08:23.700 --> 00:08:26.150
Notei que ele está escrevendo

00:08:26.150 --> 00:08:27.840
toda essa grade de Pontuação Xamarin Forms,

00:08:27.840 --> 00:08:29.985
Mas adivinhe, ele não está fazendo,

00:08:29.985 --> 00:08:32.120
Teste de interface do usuário, qualquer um deles.

00:08:32.120 --> 00:08:36.995
Assim como a minha contribuição para
Comunidade de código aberto,

00:08:36.995 --> 00:08:39.410
Agora escreveremos UI
testes para Clancy,

00:08:39.410 --> 00:08:42.990
e Clancy se você está
assistindo, você é bem-vindo.

00:08:43.490 --> 00:08:48.370
Então, antes de começar,

00:08:48.860 --> 00:08:51.495
assim, novamente, isso é dicas e truques,

00:08:51.495 --> 00:08:53.030
Então eu vou dar
Você dicas e truques.

00:08:53.030 --> 00:08:56.630
Dica número 1, eu sempre
sugerir testes em dispositivos reais.

00:08:56.630 --> 00:08:58.340
Então você pode ver direito
Agora, mas nesta mesa,

00:08:58.340 --> 00:09:01.290
Eu realmente tenho um ícone em
um dispositivo iOS conectado,

00:09:01.290 --> 00:09:03.305
e eu estou espelhamento de tela
para você agora mesmo.

00:09:03.305 --> 00:09:05.850
Então, isso é o que o aplicativo
Parece que agora,

00:09:05.850 --> 00:09:07.380
Então, se você entrar,

00:09:07.380 --> 00:09:08.850
Você verá uma lista de músicas,

00:09:08.850 --> 00:09:10.905
Você pode deslizar para cima,

00:09:10.905 --> 00:09:15.450
e você pode ver este agradável
pouco agora jogando tela.

00:09:15.450 --> 00:09:17.295
Isto é o mais longe que ele tem,

00:09:17.295 --> 00:09:18.990
e se você deslizar para o lado,

00:09:18.990 --> 00:09:21.195
olhar para este belo
gradiente que ele tem,

00:09:21.195 --> 00:09:24.015
e você pode olhar para o
menu de navegação lateral.

00:09:24.015 --> 00:09:26.285
Ok. Então isto é o mais longe que ele tem,

00:09:26.285 --> 00:09:29.325
Então vamos obter algum U (I)
testes escritos para isso.

00:09:29.325 --> 00:09:33.745
Então, já que você pode apenas
Ver o meu dispositivo iOS aqui,

00:09:33.745 --> 00:09:35.665
Agora eu vou começar com iOS.

00:09:35.665 --> 00:09:38.960
Este é o projeto de teste U (I) que
Você vê à esquerda aqui,

00:09:38.960 --> 00:09:42.850
Isto é literalmente o que você
obter quando eu faço clique com o botão direito do mouse,

00:09:42.850 --> 00:09:49.120
"Adicionar", "novo projeto", e eu escolho
se a minha coisa aparecer, lá vamos nós.

00:09:49.120 --> 00:09:50.955
Então, se eu escolher um projeto de teste U (I),

00:09:50.955 --> 00:09:54.260
Este é o modelo em branco
código que você recebe.

00:09:54.260 --> 00:09:55.910
Eu não fiz nada,

00:09:55.910 --> 00:09:58.505
Isto é como é como você obtê-lo.

00:09:58.505 --> 00:10:00.135
Tudo o que tenho feito é,

00:10:00.135 --> 00:10:01.605
no inicializador de aplicativos,

00:10:01.605 --> 00:10:05.190
Acabei de colocar uma parte
para onde o APK para

00:10:05.190 --> 00:10:07.160
o dispositivo Android é construir para

00:10:07.160 --> 00:10:09.730
e eu coloquei em síntese no meu dispositivo,

00:10:09.730 --> 00:10:12.275
Eu coloquei o ID do pacote
para o aplicativo iOS.

00:10:12.275 --> 00:10:15.680
Então isso é tudo que você precisa
fazer para começar.

00:10:15.680 --> 00:10:19.330
Então, para garantir que eu
Não quebrou nada,

00:10:19.330 --> 00:10:24.340
Vamos começar o aplicativo em execução
Porque esse é o passo número 1.

00:10:24.340 --> 00:10:26.795
Então, vamos pegar o iOS,

00:10:26.795 --> 00:10:29.510
Vamos fazer o teste funcionar,
para o padrão de objeto de página.

00:10:29.510 --> 00:10:30.955
A forma como o padrão funciona é,

00:10:30.955 --> 00:10:34.070
é baseado em quatro páginas principais.

00:10:34.070 --> 00:10:35.820
Se você fosse para ir para

00:10:35.820 --> 00:10:40.580
nosso repositório GitHub
onde temos este conjunto,

00:10:40.580 --> 00:10:42.140
Há uma amostra lá dentro,

00:10:42.140 --> 00:10:43.610
Temos um wiki que

00:10:43.610 --> 00:10:46.190
novamente passa por tudo
que estou discutindo agora.

00:10:46.190 --> 00:10:47.385
Então, se você esquecer,

00:10:47.385 --> 00:10:49.055
Basta entrar e ter uma leitura.

00:10:49.055 --> 00:10:51.165
Mas, literalmente, todos os U (I),

00:10:51.165 --> 00:10:53.179
todas as páginas do padrão
pode ser encapsulado

00:10:53.179 --> 00:10:55.790
nessas quatro páginas que
Eu mencionei ali.

00:10:55.790 --> 00:10:58.465
Esse gerente, um dispositivo elétrico de teste baixo,

00:10:58.465 --> 00:11:01.640
uma página base e uma consulta de plataforma.

00:11:05.330 --> 00:11:07.710
Opa, o que eu fiz?

00:11:07.710 --> 00:11:10.060
Eu tenho uma falha de teste?

00:11:15.200 --> 00:11:17.385
Ok, eu vou
tal para fora para Android,

00:11:17.385 --> 00:11:21.380
apenas um pouco, e começar esta execução.

00:11:21.380 --> 00:11:24.960
Os meus dispositivos desligam-se.

00:11:31.590 --> 00:11:37.630
Nós conseguimos. Quem vai
ligar este back-up. Está bem.

00:11:37.630 --> 00:11:41.605
Então temos o nosso repl do lado,

00:11:41.605 --> 00:11:43.870
que usaremos para consultar
os elementos na tela,

00:11:43.870 --> 00:11:45.745
Temos o meu aplicativo na frente.

00:11:45.745 --> 00:11:49.150
Mas antes que eu faça qualquer um que vai
voltar para o padrão de objeto de página.

00:11:49.150 --> 00:11:51.310
Então, essas quatro páginas base.

00:11:51.310 --> 00:11:53.830
Dia-a-dia, eu só entrar e apenas

00:11:53.830 --> 00:11:56.170
literalmente, basta ir "arquivo novo"
e copiar nessas páginas.

00:11:56.170 --> 00:11:59.470
Mas se você quisesse ser
Super conveniente para lhe,

00:11:59.470 --> 00:12:04.075
Temos um pacote NuGet
que você pode importar,

00:12:04.075 --> 00:12:05.800
e tudo o que faz é apenas auto

00:12:05.800 --> 00:12:07.840
injeta essas quatro páginas
que eu mencionei,

00:12:07.840 --> 00:12:11.845
o BaseTest, BasePage,
PlatformQuery e AppManager.

00:12:11.845 --> 00:12:14.350
Ele só acrescenta que, em
automaticamente para você.

00:12:14.350 --> 00:12:15.730
Então eu vou fazer isso.

00:12:15.730 --> 00:12:17.530
Se você notar, um, dois,

00:12:17.530 --> 00:12:20.260
três, quatro; quatro páginas são adicionadas.

00:12:20.260 --> 00:12:22.030
Vamos ver o que cada um deles olhar como

00:12:22.030 --> 00:12:24.040
uma pequena coisa que temos
para configurar lá.

00:12:24.040 --> 00:12:30.925
Então AppManager vai se transformar em
o novo AppInitializer.

00:12:30.925 --> 00:12:33.970
Todos os AppManager literalmente
fazendo é que é apenas dizer

00:12:33.970 --> 00:12:35.560
o quadro é onde

00:12:35.560 --> 00:12:38.305
o aplicativo Android é e este
é onde o aplicativo iOS é.

00:12:38.305 --> 00:12:40.840
Desde que eu já tinha definido
neste código aqui,

00:12:40.840 --> 00:12:44.680
Eu só vou copiar a parte
Porque eu não quero digitar isso

00:12:44.680 --> 00:12:48.820
de novo, com isso aqui.

00:12:48.820 --> 00:12:51.340
Então, se você estava fazendo
isso, outra dica,

00:12:51.340 --> 00:12:53.770
tanto no Windows como no Mac,

00:12:53.770 --> 00:12:56.035
Você pode clicar com o botão direito aqui
e adicione um projeto de aplicativo.

00:12:56.035 --> 00:12:57.985
Isso se conectará às soluções,

00:12:57.985 --> 00:12:59.380
Se você estiver fazendo um aplicativo Xamarin,

00:12:59.380 --> 00:13:02.530
e você tem a sua solução
com o mais UITest lado a lado.

00:13:02.530 --> 00:13:05.365
Você pode ligá-los até
trabalhar uns com os outros.

00:13:05.365 --> 00:13:11.410
Eu costumo evitar fazer isso
principalmente porque às vezes pode

00:13:11.410 --> 00:13:13.810
demorar alguns minutos se for

00:13:13.810 --> 00:13:17.800
um aplicativo realmente grande para que ele comece
Porque ele vai reconstruir o aplicativo,

00:13:17.800 --> 00:13:21.370
implantá-lo no dispositivo e
em seguida, iniciar o teste para você.

00:13:21.370 --> 00:13:23.635
Eu só gosto de um tempo de resposta mais rápido,

00:13:23.635 --> 00:13:25.420
Então eu costumo apenas fazer

00:13:25.420 --> 00:13:27.250
certeza de que os aplicativos já
instalado no meu dispositivo,

00:13:27.250 --> 00:13:28.420
e então eu começar a escrever testes.

00:13:28.420 --> 00:13:33.500
Essa é uma pequena dica legal, eles
pode ajudá-lo às vezes.

00:13:33.840 --> 00:13:36.730
Deixe-me pegar isso aqui. Está bem.

00:13:36.730 --> 00:13:40.810
Então tudo que eu fiz neste é novamente
apenas colocar no caminho para onde

00:13:40.810 --> 00:13:45.595
o APK e o instalado
ID móvel do meu aplicativo.

00:13:45.595 --> 00:13:47.980
Agora posso me livrar do AppInitializer,

00:13:47.980 --> 00:13:49.705
Não preciso mais disso.

00:13:49.705 --> 00:13:53.350
Então, vamos apagar. Próxima etapa.

00:13:53.350 --> 00:13:55.585
Nós temos AppInitializer feito.

00:13:55.585 --> 00:13:59.335
Precisamos agora entrar e vamos
Dê uma olhada no BasePage.

00:13:59.335 --> 00:14:00.640
Então BasePage.

00:14:00.640 --> 00:14:02.650
Então, cada página que eu
estava falando,

00:14:02.650 --> 00:14:03.850
como cada classe é uma página,

00:14:03.850 --> 00:14:05.605
para que cada página vai
para herdar isso.

00:14:05.605 --> 00:14:07.390
Tudo isso está fazendo é que lhe fornece

00:14:07.390 --> 00:14:09.685
com um no Android e no iOS.

00:14:09.685 --> 00:14:11.980
Então é assim que você pode fazer
que a separação entre plataformas

00:14:11.980 --> 00:14:13.810
que eu estava falando.

00:14:13.810 --> 00:14:16.390
Outra coisa legal que
o BasePage faz para

00:14:16.390 --> 00:14:18.715
Você é que toma um screenshot livre.

00:14:18.715 --> 00:14:21.295
Então, se você quiser correr
Esses testes no app Center,

00:14:21.295 --> 00:14:23.830
geralmente é que você não tem
capturas de tela em seu teste,

00:14:23.830 --> 00:14:25.030
Se você apenas carregar um teste,

00:14:25.030 --> 00:14:26.860
Você não vai ficar
um bom resultado de teste.

00:14:26.860 --> 00:14:28.330
Para tornar a vida mais fácil para você,

00:14:28.330 --> 00:14:30.610
Temos um AssertOnPage.

00:14:30.610 --> 00:14:33.250
É de graça. Ele faz isso
automaticamente em cada página.

00:14:33.250 --> 00:14:35.290
Então, em cada página que
herda um BasePage,

00:14:35.290 --> 00:14:37.600
é automaticamente
Vou verificar, "Hey,

00:14:37.600 --> 00:14:40.434
é esta na página que eu estou esperando?

00:14:40.434 --> 00:14:42.820
Agora, você estaria se perguntando como
o sistema saberia ou

00:14:42.820 --> 00:14:45.190
Como estamos verificando que é
na página que precisa ser.

00:14:45.190 --> 00:14:47.200
Isso é o que esta magia
coisinha e

00:14:47.200 --> 00:14:49.780
o quarto arquivo chamado PlatformQuery.

00:14:49.780 --> 00:14:52.660
Então isso é o que usamos em

00:14:52.660 --> 00:14:54.010
Este padrão para se certificar de que você está

00:14:54.010 --> 00:14:55.840
na página que você está esperado para ser.

00:14:55.840 --> 00:14:58.315
Por exemplo, se você estiver
em uma página de login,

00:14:58.315 --> 00:15:01.060
mais provavelmente algumas pessoas
geralmente têm a palavra

00:15:01.060 --> 00:15:03.700
login ou como conectado nessa página,

00:15:03.700 --> 00:15:05.440
Você pode apenas usar isso
como uma bandeja de plataforma

00:15:05.440 --> 00:15:07.180
para se certificar de que você está
na página são esperados,

00:15:07.180 --> 00:15:09.100
Então, apenas algo
exclusivo para essa página.

00:15:09.100 --> 00:15:10.870
Para que você saiba com certeza, Ok,

00:15:10.870 --> 00:15:12.490
Estou na página que estou
esperado para ser e eu

00:15:12.490 --> 00:15:14.665
pode executar as ações nessa página.

00:15:14.665 --> 00:15:17.455
A parte agradável é uma vez que
verifica que você está nessa página,

00:15:17.455 --> 00:15:18.850
Toma um screenshot livre para você.

00:15:18.850 --> 00:15:21.325
Então é como nesta página.

00:15:21.325 --> 00:15:24.415
Está bem. Então isso é
o que BasePage faz.

00:15:24.415 --> 00:15:29.575
BaseTestFixtures são todos os testes
vai herdar isso.

00:15:29.575 --> 00:15:32.050
O mesmo processo. Então eles estão
fornecendo aqueles em

00:15:32.050 --> 00:15:34.870
iOS e em valores Android aqui.

00:15:34.870 --> 00:15:37.870
Mais uma vez, às vezes há
algumas falhas no aplicativo que pode

00:15:37.870 --> 00:15:41.620
pouco padrão
entre iOS e Android.

00:15:41.620 --> 00:15:43.780
Então, dentro de seus testes, você
pode ter um rompimento e

00:15:43.780 --> 00:15:46.870
a falha usando esses valores.

00:15:46.870 --> 00:15:50.035
Literalmente, tudo o que faz é agarrar

00:15:50.035 --> 00:15:52.735
o valor de AppManager
e inicia o aplicativo para você.

00:15:52.735 --> 00:15:54.580
É isso mesmo. É super simples,

00:15:54.580 --> 00:15:57.860
nada muito complicado, nada
muito chique acontecendo aqui.

00:15:57.870 --> 00:16:02.140
O último é o teste em si.

00:16:02.140 --> 00:16:06.160
Então foi assim que o
teste inicial se parece,

00:16:06.160 --> 00:16:08.610
Mas se você notou
no dispositivo de teste,

00:16:08.610 --> 00:16:11.580
Já estamos fazendo como todos
essas coisas de marcação lá dentro.

00:16:11.580 --> 00:16:13.470
Para que possamos emagrecer todo o teste,

00:16:13.470 --> 00:16:15.060
Ele não precisa de todos esses valores.

00:16:15.060 --> 00:16:21.220
O que vai começar a procurar
como se fosse algo assim.

00:16:21.220 --> 00:16:26.365
Então seu teste vai literalmente
apenas herdar BaseTestFixture.

00:16:26.365 --> 00:16:27.970
Novamente, estamos passando na plataforma,

00:16:27.970 --> 00:16:30.775
assim que sabe que plataforma a funcionar sobre.

00:16:30.775 --> 00:16:34.450
Assim, o repl sendo o
Leia apenas eval loop,

00:16:34.450 --> 00:16:36.685
que levou à consulta de
elementos na tela.

00:16:36.685 --> 00:16:38.935
Então você pode fazer um teste
que apenas lança que,

00:16:38.935 --> 00:16:40.960
e então eu tenho outro teste
já escrito em

00:16:40.960 --> 00:16:44.155
aqui que vai para a homepage,

00:16:44.155 --> 00:16:46.750
como na homepage que
os aplicativos estão no momento.

00:16:46.750 --> 00:16:48.355
Deixe-me puxar para cima app novamente.

00:16:48.355 --> 00:16:52.690
Ele vai deslizar e ele vai
Vá para a guia Configurações.

00:16:52.690 --> 00:16:57.490
Teste tão simples apenas para certificar-se
Não estraguei nada.

00:16:57.490 --> 00:16:58.765
Então o teste está lá.

00:16:58.765 --> 00:17:02.470
Vamos dar uma olhada no que
uma página concluída se parece.

00:17:02.470 --> 00:17:04.495
Nós estaremos escrevendo para baixo
Esta página, por isso não se preocupe.

00:17:04.495 --> 00:17:08.540
Então, andando pelo que esperar.

00:17:09.060 --> 00:17:12.745
Então é assim que uma página se parece.

00:17:12.745 --> 00:17:16.150
Algumas dicas aqui. Coisa alienígena

00:17:16.150 --> 00:17:19.855
a consulta do Word faz
vida muito mais agradável.

00:17:19.855 --> 00:17:24.145
Então, quando você está configurando
os diferentes botões no ecrã,

00:17:24.145 --> 00:17:25.930
Você pode simplesmente apenas fazer a consulta,

00:17:25.930 --> 00:17:28.450
ou você pode até mesmo fazê-lo
em um funk pouco chique.

00:17:28.450 --> 00:17:30.190
Então essa é uma dica legal para ter.

00:17:30.190 --> 00:17:31.780
Então não temos essas
botões na tela.

00:17:31.780 --> 00:17:33.385
Vou comentar
isso por enquanto.

00:17:33.385 --> 00:17:36.820
A próxima coisa que você vai notar
é que herda alguns BasePage.

00:17:36.820 --> 00:17:39.820
Então, se eu fosse para remover isso de distância,

00:17:39.820 --> 00:17:41.860
o sistema irá
automaticamente ser como,

00:17:41.860 --> 00:17:43.135
Não há algo errado.

00:17:43.135 --> 00:17:46.270
Eu não vou deixar você fazer isso
Porque você precisa implementar

00:17:46.270 --> 00:17:49.960
as implementações de consulta de plataforma.

00:17:49.960 --> 00:17:52.810
Porque como eu disse, é
o que impulsiona o sistema,

00:17:52.810 --> 00:18:00.520
é o que basicamente ajuda
o sistema entender Desculpe,

00:18:00.520 --> 00:18:02.635
que tudo bem, isso está em
a página que eu deveria ser,

00:18:02.635 --> 00:18:05.275
e agora eu posso executar
as ações nele.

00:18:05.275 --> 00:18:11.320
Então, a homepage, que é literalmente
Esta página em que ele pousa,

00:18:11.320 --> 00:18:15.730
Ele verifica, assim, para o iOS,

00:18:15.730 --> 00:18:17.890
é texto para este botão.

00:18:17.890 --> 00:18:19.690
Eu não tenho um iOS aberto, não é?

00:18:19.690 --> 00:18:21.910
Ele verifica para este botão
que diz gMusic.

00:18:21.910 --> 00:18:25.420
Mas se você notar, há
nenhum menu Adicionar tarefa no Android.

00:18:25.420 --> 00:18:28.960
Então, vamos descobrir o que o comércio
poderia ser para o Android.

00:18:28.960 --> 00:18:31.525
Deixe-me ir, onde está o meu repl,

00:18:31.525 --> 00:18:33.970
Não o meu terminal ir embora.

00:18:33.970 --> 00:18:39.080
Então vamos ver o que
ter acontecendo aqui.

00:18:40.140 --> 00:18:43.780
Neste fluxo gigante de coisas,

00:18:43.780 --> 00:18:45.625
Isso pode ser um pouco esmagadora.

00:18:45.625 --> 00:18:47.125
Se você estiver escrevendo UI
teste pela primeira vez,

00:18:47.125 --> 00:18:48.340
Conheço muitas pessoas que não

00:18:48.340 --> 00:18:49.930
como olhar rapel
e eu não te culpo,

00:18:49.930 --> 00:18:51.670
Esta é uma informação da Cortana.

00:18:51.670 --> 00:18:54.940
Mais uma vez, algumas dicas e truques
Só para tornar a sua vida mais fácil.

00:18:54.940 --> 00:18:58.765
Coisas nestes suportes quadrados
são geralmente classes.

00:18:58.765 --> 00:19:01.750
Se você estiver consultando uma classe
e você tenta descobrir,

00:19:01.750 --> 00:19:04.660
Se eu puder encontrar um ID para
uma página ou um elemento,

00:19:04.660 --> 00:19:07.480
Eu posso usar a classe, este
é o que você deseja usar.

00:19:07.480 --> 00:19:09.310
O que eu vou fazer é,

00:19:09.310 --> 00:19:12.295
Na verdade, entrei e adicionei
um par de IDs de automação,

00:19:12.295 --> 00:19:15.010
e vejo que há agora
página de jogo e não há

00:19:15.010 --> 00:19:17.800
um mini Player que é
Essa coisa no fundo,

00:19:17.800 --> 00:19:19.900
Então eu vou usar
que, como o traço.

00:19:19.900 --> 00:19:21.940
Vamos entrar aqui e substituir isso,

00:19:21.940 --> 00:19:23.635
assim que nós temos o mini jogador.

00:19:23.635 --> 00:19:26.530
Assim, a homepage parece bom
o suficiente para mim, tudo bem.

00:19:26.530 --> 00:19:28.990
Eu não vou colocar nenhum método
na página inicial agora apenas

00:19:28.990 --> 00:19:31.480
Porque não estamos fazendo
qualquer ação na página inicial ainda,

00:19:31.480 --> 00:19:34.885
Tudo o que estamos fazendo é passando
no menu lateral.

00:19:34.885 --> 00:19:39.145
Eu vou voltar para
a página base para um pouco,

00:19:39.145 --> 00:19:41.980
Porque há
Cool funky coisinha

00:19:41.980 --> 00:19:44.065
Eu tenho aqui que eu sou
Vou copiar.

00:19:44.065 --> 00:19:47.230
O que está acontecendo é,

00:19:47.230 --> 00:19:49.585
a página base é super poderosa.

00:19:49.585 --> 00:19:51.940
Uma das coisas legais que eu
Quero destacar aqui é,

00:19:51.940 --> 00:19:55.750
Se você olhar para a forma como este aplicativo
funciona, deixe-me colocar isso,

00:19:55.750 --> 00:19:58.390
Então você está nas canções que você agora,

00:19:58.390 --> 00:20:00.160
Você pode mudar para artistas.

00:20:00.160 --> 00:20:03.835
Novamente, o menu lateral ainda está
acessível a partir da mesma página.

00:20:03.835 --> 00:20:06.010
Se eu entrar em gêneros,

00:20:06.010 --> 00:20:08.245
novamente o menu lateral é acessível,

00:20:08.245 --> 00:20:09.940
e eu amo o lado do hospedeiro,
e ninguém tem

00:20:09.940 --> 00:20:12.055
reagiu ao meu gosto trashy na música,

00:20:12.055 --> 00:20:14.210
Vocês são os melhores.

00:20:14.760 --> 00:20:17.245
A coisa é, esta é uma página compartilhada

00:20:17.245 --> 00:20:18.880
é como funcionalidade compartilhada,

00:20:18.880 --> 00:20:20.800
Então vamos compartilhar o código.

00:20:20.800 --> 00:20:24.670
Vou colocar isso
na minha página base,

00:20:24.670 --> 00:20:29.185
Então tudo isso está fazendo é isso
é o método de menu Select,

00:20:29.185 --> 00:20:31.090
que vai fazer
a ação de abrir

00:20:31.090 --> 00:20:33.250
menu e seleccione um item de menu.

00:20:33.250 --> 00:20:35.845
Vou colocar isso na página base
Porque parece

00:20:35.845 --> 00:20:39.460
cada página neste aplicativo
tem acesso a esta página base.

00:20:39.460 --> 00:20:41.470
Vai fazer
minha vida mais fácil de fazer isso.

00:20:41.470 --> 00:20:45.775
Outro truque legal é o retorno
valores desses métodos.

00:20:45.775 --> 00:20:47.635
Se você retornar a página em que está,

00:20:47.635 --> 00:20:49.450
Você pode manter amarrando sobre os métodos

00:20:49.450 --> 00:20:51.895
Apenas faz o seu teste
olhar muito mais agradável.

00:20:51.895 --> 00:20:54.865
O que recomendamos com
o padrão de objeto de página é,

00:20:54.865 --> 00:20:58.825
Se é um método que não
navegar para fora dessa página,

00:20:58.825 --> 00:21:00.610
fazer o tipo de retorno a própria página.

00:21:00.610 --> 00:21:01.990
Porque isso significa que
Você vai continuar

00:21:01.990 --> 00:21:03.400
fazendo mais ações nessa página,

00:21:03.400 --> 00:21:06.490
Você não quer uma nova página
Quando você está escrevendo o teste.

00:21:06.490 --> 00:21:08.560
Mas se você estiver navegando
longe da página,

00:21:08.560 --> 00:21:10.210
Isso significa que há
vai ser uma nova página

00:21:10.210 --> 00:21:12.580
acontecendo após este método
é feito de qualquer maneira,

00:21:12.580 --> 00:21:16.615
de modo que é quando você quer fazer
-lo largo. Essa é outra dica legal.

00:21:16.615 --> 00:21:22.420
Eu não tenho meu alias usando em
aqui, então deixe-me puxar isso,

00:21:22.420 --> 00:21:26.000
Você quer usar alguns funks e wow.

00:21:26.790 --> 00:21:31.900
Ok, isso parece feliz
Isso parece bom.

00:21:31.900 --> 00:21:33.760
Eu tenho uma coisa parecida que faz

00:21:33.760 --> 00:21:38.185
a ação de arrastar da parte inferior
para abrir a vista agora simples.

00:21:38.185 --> 00:21:40.495
Mais uma vez, é uma ação compartilhada
qualquer página que você está

00:21:40.495 --> 00:21:42.790
sobre você deve ser capaz de
fazer essas ações novamente,

00:21:42.790 --> 00:21:44.770
Eu coloquei isso na minha página base.

00:21:44.770 --> 00:21:46.900
Você começará a notar
coisas como nós estamos

00:21:46.900 --> 00:21:48.490
fazendo todos estes
princípios que você faria

00:21:48.490 --> 00:21:50.080
Quando você está escrevendo um aplicativo não

00:21:50.080 --> 00:21:52.120
necessariamente quando
Você está escrevendo um teste.

00:21:52.120 --> 00:21:54.910
O destaque da
Essa coisa toda é que,

00:21:54.910 --> 00:21:57.040
escrever testes é como escrever um aplicativo.

00:21:57.040 --> 00:21:58.570
Quero dizer, se você é esperto sobre isso,

00:21:58.570 --> 00:22:00.175
e você pode ir testar suítes robustas,

00:22:00.175 --> 00:22:01.480
Ele só faz a escrita

00:22:01.480 --> 00:22:04.310
os testes e a manutenção
-los muito mais agradável.

00:22:04.380 --> 00:22:06.805
Cool, então criado com base em hábito,

00:22:06.805 --> 00:22:08.455
Eu tenho a minha configuração homepage.

00:22:08.455 --> 00:22:10.390
Nós temos nosso teste indo,

00:22:10.390 --> 00:22:11.440
Então eu vou comentar

00:22:11.440 --> 00:22:14.530
Este Testfile velho porque
Não precisamos mais disso,

00:22:14.530 --> 00:22:18.085
e esta é a nossa coisa configurações.

00:22:18.085 --> 00:22:23.230
Outra dica legal, é tudo
correndo pelo NUnit.

00:22:23.230 --> 00:22:25.390
Sim, se você apoiar NUnit 3 agora,

00:22:25.390 --> 00:22:30.170
para que você possa usar o NUnit 3 com teste de IU.

00:22:30.960 --> 00:22:34.600
Realce e use cada único poder
que NUnit fornece.

00:22:34.600 --> 00:22:38.690
Use casos de teste e você
Sei otimizar suas mesas.

00:22:39.900 --> 00:22:43.075
É como se você tivesse
todo esse poder lá,

00:22:43.075 --> 00:22:44.560
Não se esqueça que
Embora isso tenha

00:22:44.560 --> 00:22:46.300
Teste de interface do usuário Xamarin está sendo executado em Nunits,

00:22:46.300 --> 00:22:48.610
Você tem toda a funcionalidade NUnit
disponível para você.

00:22:48.610 --> 00:22:50.965
Então você pode afirmar, você
pode usar casos de teste,

00:22:50.965 --> 00:22:52.615
Você pode usar ignorar,

00:22:52.615 --> 00:22:56.410
Você também pode usar
minha categoria favorita coisa.

00:22:56.410 --> 00:22:59.590
Minha coisa favorita para
fazer com a categoria é

00:22:59.590 --> 00:23:02.275
configurar testes com teste de fumaça,

00:23:02.275 --> 00:23:04.825
testes noturnos, testes de desenvolvimento.

00:23:04.825 --> 00:23:08.665
Se tiver a configuração de CI/CD
com os testes de interface do usuário nele,

00:23:08.665 --> 00:23:10.690
Categorizar seus testes,
Então você não está correndo

00:23:10.690 --> 00:23:12.625
toda a suíte de testes de cada vez.

00:23:12.625 --> 00:23:16.465
Então, se é apenas uma verificação dev BR
apenas fazê-lo funciona em testes de fumaça.

00:23:16.465 --> 00:23:18.490
Se é um grande dia,

00:23:18.490 --> 00:23:19.840
fazer um subconjunto de

00:23:19.840 --> 00:23:22.825
toda a sua suíte e chamar isso
sua categoria diária de testes.

00:23:22.825 --> 00:23:24.640
Se é um lance da Nike, foi quando eu

00:23:24.640 --> 00:23:26.830
recomendo fazer como
todo o teste de ponta a ponta,

00:23:26.830 --> 00:23:28.150
Só porque ninguém
trabalhando e você

00:23:28.150 --> 00:23:30.145
ter todos os três computadores.

00:23:30.145 --> 00:23:36.410
Mais uma vez, use alavancar todos os cool
coisas que NUnit tem para fornecer.

00:23:36.540 --> 00:23:42.145
Vou reconstruir o.

00:23:42.145 --> 00:23:43.540
Oops, eu tenho o meu rapel aberto,

00:23:43.540 --> 00:23:44.725
Não é? Sim, eu faço.

00:23:44.725 --> 00:23:47.380
Vamos parar com isso,

00:23:47.380 --> 00:23:50.905
rapel é bom, parece feliz.

00:23:50.905 --> 00:23:58.930
Nós configurar o caso de teste para
página de configurações e verificar isso.

00:23:58.930 --> 00:24:03.010
Agora configura-lo em
o painel de teste de unidade,

00:24:03.010 --> 00:24:05.260
Então eu vou abrir
a página de configurações,

00:24:05.260 --> 00:24:07.285
Vamos ver o que isso parece.

00:24:07.285 --> 00:24:10.795
Tentativa número dois com iOS,
Vamos ver como isso vai.

00:24:10.795 --> 00:24:14.300
Não, não gosta
meu dispositivo iOS, por quê?

00:24:16.920 --> 00:24:21.490
Opa, ficou isso, matar o aplicativo.

00:24:21.490 --> 00:24:25.300
Obter este aplicativo novamente, limpo.

00:24:25.300 --> 00:24:35.155
Aqui vamos nós, vamos lá,

00:24:35.155 --> 00:24:37.520
Não editá-lo em mim.

00:24:37.800 --> 00:24:40.825
Faça todos os deuses demo felizes.

00:24:40.825 --> 00:24:45.610
Como está funcionando, deixe-me ver,

00:24:45.610 --> 00:24:48.670
Eu ia dizer algo que
apenas, Oh Yeah, está funcionando agora.

00:24:48.670 --> 00:24:54.710
Vamos ver como isso vai dar.
Ele está abrindo o aplicativo.

00:24:57.450 --> 00:25:01.990
Não, não deslizou e
Seleccione o meu item de menu.

00:25:01.990 --> 00:25:04.550
Estou tão triste agora, vamos
Ver o que está acontecendo.

00:25:04.650 --> 00:25:08.840
Site à direita, temos o menu.

00:25:13.650 --> 00:25:16.000
A próxima coisa que isso vai
acontecer, mas digamos

00:25:16.000 --> 00:25:18.085
que eu estava fazendo em vamos teste de depuração.

00:25:18.085 --> 00:25:20.260
Não sei por que isso não está funcionando,

00:25:20.260 --> 00:25:22.210
o que eu vou fazer vai
para entrar rapel aqui,

00:25:22.210 --> 00:25:24.010
e eu vou verificar
Por que meu teste não está funcionando

00:25:24.010 --> 00:25:25.870
porque honestamente eu
Pensei que isso ia

00:25:25.870 --> 00:25:30.530
trabalhar como eu preciso
trabalho como um artigo.

00:25:33.570 --> 00:25:36.985
É assim que o teste concluído,

00:25:36.985 --> 00:25:39.565
Oh meu Deus, eu deveria
Lembre-se de matar isso.

00:25:39.565 --> 00:25:44.290
Você viu como o olhar completo

00:25:44.290 --> 00:25:46.090
do teste parece
e como é que um monte de

00:25:46.090 --> 00:25:48.550
meu compartilhamento de go-share e método
que você pode fazer.

00:25:48.550 --> 00:25:53.080
Como você iria começar
escrevendo um novo teste,

00:25:53.080 --> 00:25:55.435
Então, talvez a conversão de testes
que você já tem.

00:25:55.435 --> 00:25:57.130
Etapa número um seria literalmente

00:25:57.130 --> 00:25:58.885
o que acabei de fazer,
adicionando no teste de interface do usuário,

00:25:58.885 --> 00:26:01.405
Você pode usar o pacote pop
ou você pode entrar em

00:26:01.405 --> 00:26:05.690
GitHub e copiar manualmente sobre
as páginas que você quiser.

00:26:06.240 --> 00:26:10.180
A segunda coisa é
como eu disse que você entra,

00:26:10.180 --> 00:26:11.500
Edite o arquivo do Gerenciador de aplicativos,

00:26:11.500 --> 00:26:14.260
excluir todo o inicializador de aplicativo
arquivo, você fez tudo isso.

00:26:14.260 --> 00:26:17.050
Você entra e depois

00:26:17.050 --> 00:26:19.795
o próximo passo, literalmente, é apenas
para começar a criar as páginas.

00:26:19.795 --> 00:26:22.150
Eu tinha homepage já criado
com o comércio lá,

00:26:22.150 --> 00:26:23.560
Mas isso é literalmente o próximo passo.

00:26:23.560 --> 00:26:25.120
O Buy-in inicial pode ser um

00:26:25.120 --> 00:26:26.920
pouco caro porque
é preciso um pouco de

00:26:26.920 --> 00:26:30.490
tempo, dependendo de quantas páginas
e como o seu aplicativo é avançado.

00:26:30.490 --> 00:26:31.870
Mas a parte agradável é,

00:26:31.870 --> 00:26:33.460
Você pode realmente dividir este trabalho

00:26:33.460 --> 00:26:35.200
Porque é independente
em quem está trabalhando nisso.

00:26:35.200 --> 00:26:36.715
Porque todos que estão nessa página,

00:26:36.715 --> 00:26:38.110
para que você possa dividir o trabalho de

00:26:38.110 --> 00:26:39.640
escrevendo cada página
entre cinco pessoas,

00:26:39.640 --> 00:26:41.005
todo mundo escreve uma página,

00:26:41.005 --> 00:26:43.810
e é isso, você tem em
a configuração inicial feita.

00:26:43.810 --> 00:26:47.800
Porque uma vez que as páginas estão em que é
Tudo o que leva mais tempo,

00:26:47.800 --> 00:26:50.365
Então você só cozinhar
os métodos para escrever seus testes,

00:26:50.365 --> 00:26:52.645
super simples, é
realmente simples.

00:26:52.645 --> 00:27:00.500
Agora, vamos ver por que meu furto
direita para a esquerda não foi swiping.

00:27:03.750 --> 00:27:07.840
Então, o meu código é outra forma de contornar?

00:27:07.840 --> 00:27:11.170
Meu código é o direito de
esquerda, Ok, vamos ver.

00:27:11.170 --> 00:27:14.090
Eu tinha o rapel aberto, vamos verificar.

00:27:14.100 --> 00:27:18.730
Se ele está indo para a direita para a esquerda
Não está fazendo nada estranho.

00:27:18.730 --> 00:27:20.740
Ok, vamos para a esquerda para a direita.
Acho que vocês estão certos.

00:27:20.740 --> 00:27:27.400
Acho que é suposto
para deslizar para a esquerda para a direita.

00:27:28.380 --> 00:27:31.615
Lá vai você, bela captura. Obrigado.

00:27:31.615 --> 00:27:35.470
A alegria da votação sobre ele e nenhum
de você está dormindo, isso é bom.

00:27:35.470 --> 00:27:37.090
Detesto fazer sessões
Depois do almoço, porque

00:27:37.090 --> 00:27:39.860
Tenho sempre a certeza que
todo mundo está meio adormecido.

00:27:41.010 --> 00:27:44.065
A outra coisa que eu fiz
aqui foi que eu comecei a colocar

00:27:44.065 --> 00:27:46.330
uma amostra de como uma função
seria parecido,

00:27:46.330 --> 00:27:48.790
Mas eu mesmo complicei as coisas.

00:27:48.790 --> 00:27:50.500
Isto é literalmente apenas fazendo

00:27:50.500 --> 00:27:53.570
uma correspondência de consulta de cadeia de caracteres
para o que está aqui.

00:27:53.790 --> 00:27:56.890
Outra coisa que eu gosto de
geralmente fazer é desde como eu

00:27:56.890 --> 00:27:59.380
disse que a configuração inicial
é apenas as páginas,

00:27:59.380 --> 00:28:01.900
e a maneira mais rápida
para encontrar elementos em

00:28:01.900 --> 00:28:05.190
uma página I app. flash tudo,

00:28:05.190 --> 00:28:07.695
é a minha coisa favorita aqui.

00:28:07.695 --> 00:28:11.470
Desde que eu queria apenas tocar
no botão Configurações,

00:28:12.050 --> 00:28:15.215
Se eu apenas adicionar. Configurações de flash,

00:28:15.215 --> 00:28:18.160
Eu posso apenas descobri-é
tem dois botões de configurações,

00:28:18.160 --> 00:28:21.920
Só preciso fazê-lo ir.

00:28:22.830 --> 00:28:25.705
Essa é a minha exata configurações
botão, é isso.

00:28:25.705 --> 00:28:28.375
Se você apenas gasta um pouco de
tempo e apenas continuar fazendo isso,

00:28:28.375 --> 00:28:30.775
faz a configuração de
Estas páginas super rápido.

00:28:30.775 --> 00:28:33.160
Além disso, a maioria dos casos se
Você é o único que está

00:28:33.160 --> 00:28:35.440
escrito o aplicativo que você sabe
o ID de automação que você

00:28:35.440 --> 00:28:37.465
anexado no Xamarin Forms ou

00:28:37.465 --> 00:28:40.540
que nome na acessibilidade
ID que você forneceu.

00:28:40.540 --> 00:28:42.700
Então você provavelmente
Já conhecem a consulta.

00:28:42.700 --> 00:28:44.260
Deve ser super rápido,

00:28:44.260 --> 00:28:47.245
e super intuitiva
uma vez que você entrar nele.

00:28:47.245 --> 00:28:50.814
Eu vou pegar isso,

00:28:50.814 --> 00:28:52.660
e eu vou mudar isso porque

00:28:52.660 --> 00:28:54.550
Ele não precisa
ser tão complicado.

00:28:54.550 --> 00:29:01.255
Isto pode literalmente ser apenas uma String
e pode simplesmente viver aqui.

00:29:01.255 --> 00:29:03.830
Então eu vou usar,

00:29:05.460 --> 00:29:07.690
Eu não puxei isso hoje,

00:29:07.690 --> 00:29:09.800
Não, está bem aqui, ok.

00:29:17.450 --> 00:29:24.105
Não, não faz isso.
Bem, Ok, espere.

00:29:24.105 --> 00:29:26.830
Vou fazer um
pouco de falsificando aqui.

00:29:30.770 --> 00:29:35.320
Eu quero mostrar
como escrevê-los.

00:29:37.520 --> 00:29:40.125
Ok. Isso parece bom.

00:29:40.125 --> 00:29:47.140
Vamos mudá-lo, e
Vamos mudá-lo.

00:29:49.580 --> 00:29:53.010
Preciso da minha consulta de novo.

00:29:53.010 --> 00:29:57.040
Então eu vou voltar para
Aqui. Então esta foi a consulta.

00:30:00.800 --> 00:30:03.060
O que eu preciso aqui?

00:30:03.060 --> 00:30:10.270
Então eu vou apenas
fazer essas configurações.

00:30:16.040 --> 00:30:18.120
Na verdade, eu nem

00:30:18.120 --> 00:30:20.400
precisa mais disso, agora
que eu penso sobre isso.

00:30:20.400 --> 00:30:23.205
Eu posso apenas entrar e fazer isso,

00:30:23.205 --> 00:30:29.580
jogar na minha verificação lambda
Bem aqui.

00:30:29.580 --> 00:30:33.900
Assim faz do elemento este,
"Toque" no elemento this.

00:30:33.900 --> 00:30:36.420
Ok. Então, isso por agora,

00:30:36.420 --> 00:30:42.030
Vamos apenas abrir o menu de configurações,

00:30:42.030 --> 00:30:44.265
Só porque eu não quero
para desperdiçar o tempo de todos,

00:30:44.265 --> 00:30:45.165
e estamos chegando perto.

00:30:45.165 --> 00:30:49.455
Então vamos fazer isso aqui.

00:30:49.455 --> 00:30:52.660
Certo, ótimo.

00:30:53.900 --> 00:30:56.290
Qual é o problema?

00:31:02.450 --> 00:31:05.700
Então eu liguei.

00:31:05.700 --> 00:31:09.510
"SelectMenuItem" mas eu não
dar-lhe um valor agora.

00:31:09.510 --> 00:31:12.490
Ok. Vamos fazer isto.

00:31:14.330 --> 00:31:17.100
Ainda está funcionando?

00:31:17.100 --> 00:31:21.525
Ok. Então, lembre-se sempre de matar
o aplicativo que eu esqueci de fazer.

00:31:21.525 --> 00:31:24.090
Então vamos fazer isso.

00:31:24.090 --> 00:31:31.680
Acho que esta é a parte mais lenta,

00:31:31.680 --> 00:31:33.165
apenas esperando por esse lançamento.

00:31:33.165 --> 00:31:36.225
Mas, além disso,
Ele fica super rápido.

00:31:36.225 --> 00:31:38.430
Então, o que vamos fazer agora
muito rapidamente é que eu vou apenas

00:31:38.430 --> 00:31:40.470
mostrar-lhe como definir uma página para cima, porque

00:31:40.470 --> 00:31:44.520
que é geralmente tudo o que você
precisa entender sobre o que é

00:31:44.520 --> 00:31:49.540
acontecendo, e apenas entender.

00:31:51.860 --> 00:31:55.965
Deixe-me adivinhar, meu índice
é zero não um.

00:31:55.965 --> 00:31:58.200
Sim, meu índice é zero não um.

00:31:58.200 --> 00:32:03.580
Ok. Vamos dividir.

00:32:04.160 --> 00:32:08.160
Lá vamos nós. O que eu quero
Verifique se é um slide um, dois.

00:32:08.160 --> 00:32:11.280
Ok. Ele virá para esta página.

00:32:11.280 --> 00:32:13.905
Mas o que nós vamos
realmente escrever o teste para,

00:32:13.905 --> 00:32:16.290
Eu quero testar para que
Agora a reproduzir ecrã.

00:32:16.290 --> 00:32:22.150
Então, vamos tentar isso.

00:32:23.030 --> 00:32:26.140
Vamos entrar aqui.

00:32:32.330 --> 00:32:38.710
OpenNowPlaying e quando eu
abrir um repl nessa página.

00:32:42.650 --> 00:32:46.515
Ok. Então, enquanto isso está lançando,

00:32:46.515 --> 00:32:49.095
como você começaria com uma nova página?

00:32:49.095 --> 00:32:54.120
"Adicionar nova página". Então, vamos
chamá-lo de NowPlayingPage.

00:32:54.120 --> 00:32:57.270
Todo mundo é bom para aprender. Este
é o que todos fariam.

00:32:57.270 --> 00:33:00.749
Próximo passo, nós vamos
herdar de BasePage,

00:33:00.749 --> 00:33:02.010
Mas então vai ser como, "não,

00:33:02.010 --> 00:33:03.435
Você precisa ter a consulta de plataforma. "

00:33:03.435 --> 00:33:06.490
Ok. Lance na consulta de plataforma.

00:33:09.530 --> 00:33:13.560
Então está na minha página
e está pronto para ir.

00:33:13.560 --> 00:33:17.310
Então podemos colocar isso de volta aqui,

00:33:17.310 --> 00:33:18.990
obter a fonte para isso.

00:33:18.990 --> 00:33:21.750
Ok. Então, normalmente o que eu faço é,

00:33:21.750 --> 00:33:25.980
Eu nunca me lembro como a plataforma
traço e coisas parecido.

00:33:25.980 --> 00:33:30.645
Eu vou e abro em uma amostra ou eu
Basta entrar em página já feita.

00:33:30.645 --> 00:33:34.515
Eu decido copiar isto sobre
Porque eu gosto de trapacear.

00:33:34.515 --> 00:33:39.030
Então, este comando
aqui colocar isso aqui.

00:33:39.030 --> 00:33:40.980
Está bem. Tudo que você tem a
fazer agora é entrar e apenas

00:33:40.980 --> 00:33:43.395
alterar os valores de traço
por plataforma.

00:33:43.395 --> 00:33:46.290
Então vamos ver o que
pode ser para iOS.

00:33:46.290 --> 00:33:49.150
Então vamos ver o que temos aqui.

00:33:49.700 --> 00:33:53.745
Temos um monte de telas.

00:33:53.745 --> 00:33:55.890
Mas eu tenho o ID da página que diz

00:33:55.890 --> 00:33:58.050
NowPlayingPage que é promissor.

00:33:58.050 --> 00:33:59.310
Então eu vou pegar isso.

00:33:59.310 --> 00:34:03.490
Então, para iOS, eu vou
colocar isso como um traço de página.

00:34:06.250 --> 00:34:10.120
Isso é parar estão aqui.

00:34:10.120 --> 00:34:13.020
Eu vou puxar para cima Android,

00:34:13.020 --> 00:34:18.510
e vamos fazer o mesmo
coisa para Android.

00:34:18.510 --> 00:34:21.855
Assim, as configurações do Android.

00:34:21.855 --> 00:34:25.120
Deixe-me executar este teste.

00:34:25.250 --> 00:34:27.890
Então, a configuração inicial.

00:34:27.890 --> 00:34:30.320
Eu não estou apenas fazendo literalmente
o que eu vou fazer se eu estivesse fazendo

00:34:30.320 --> 00:34:32.960
isso sozinho na minha mesa.

00:34:32.960 --> 00:34:34.430
Então, o primeiro passo que eu viria,

00:34:34.430 --> 00:34:35.690
lançar este um par de vezes,

00:34:35.690 --> 00:34:38.045
obter todos os traços de página feito.

00:34:38.045 --> 00:34:40.900
Uma vez que eu tenho os valores de traço de página,

00:34:40.900 --> 00:34:42.810
Preciso consertar isso.
para Android claramente,

00:34:42.810 --> 00:34:43.935
Não está deslizando para a direita.

00:34:43.935 --> 00:34:48.405
Mas uma árvore aqui,

00:34:48.405 --> 00:34:51.850
Vamos ver o que está acontecendo
no Android. Vamos ver.

00:34:51.890 --> 00:34:55.830
Então, há a etiqueta.
Porque eu volto.

00:34:55.830 --> 00:35:00.330
Ok. Então, há MiniPlayer,
Há CurrentSong, CurrentArtist.

00:35:00.330 --> 00:35:02.280
Vejo uma página de abertura novamente.

00:35:02.280 --> 00:35:05.910
Então, vamos apenas emprestar
a mesma coisa para ambos.

00:35:05.910 --> 00:35:09.180
Agora que isso está configurado,
Podemos começar a colocar em

00:35:09.180 --> 00:35:12.270
alguns valores para elementos
nessa tela.

00:35:12.270 --> 00:35:17.235
Então, novamente voltar, vamos agarrar
o alias usando para isso.

00:35:17.235 --> 00:35:20.265
NowPlayingPage, vamos
vir aqui. Está bem.

00:35:20.265 --> 00:35:23.370
Assim, o NowPlayingPage tem
um monte de botões que eu vejo.

00:35:23.370 --> 00:35:26.460
Então vamos ver o que está acontecendo aqui.

00:35:26.460 --> 00:35:28.710
Então, há o botão "Play",

00:35:28.710 --> 00:35:30.180
Há a cima e os polegares para cima,

00:35:30.180 --> 00:35:33.180
polegares para baixo, há
o "MiniPlayer".

00:35:33.180 --> 00:35:36.360
O que vou tentar é.

00:35:36.360 --> 00:35:38.370
Vamos ver se você pode obter
no botão "Shuffle".

00:35:38.370 --> 00:35:40.650
Então esse é o botão aqui.

00:35:40.650 --> 00:35:42.630
Então, há shuffle,
Há repetição de jogo.

00:35:42.630 --> 00:35:45.210
Certo. Agora, se você notar isso
é outra questão que eu já vi.

00:35:45.210 --> 00:35:48.075
Então você não pode sempre ter
controle sobre o código-fonte,

00:35:48.075 --> 00:35:49.350
e você não pode sempre
ser capaz de ir em

00:35:49.350 --> 00:35:50.640
lá e adicionar IDs de automação,

00:35:50.640 --> 00:35:53.055
ou adicionar nomes físicos para as coisas.

00:35:53.055 --> 00:35:54.900
Por exemplo, se eu olhar aqui,

00:35:54.900 --> 00:35:58.125
Tudo que eu consigo ver é
o controle de grades inferiores.

00:35:58.125 --> 00:36:02.280
Não tenho nomes específicos.
para qualquer um desses botões sendo.

00:36:02.280 --> 00:36:04.440
Eu acho que é um controle personalizado
esse olhar é usado.

00:36:04.440 --> 00:36:07.510
Então eu não tenho valores para isso.

00:36:07.610 --> 00:36:11.895
A melhor maneira de fazê-lo é
apenas manter a perfuração para baixo.

00:36:11.895 --> 00:36:13.604
Então eu vou,

00:36:13.604 --> 00:36:15.060
Vamos consultar a partir daqui.

00:36:15.060 --> 00:36:18.210
Então isso é chamado
o controle de grades inferiores.

00:36:18.210 --> 00:36:22.395
Então eu vou olhar para o que são
as crianças dentro dela primeiro.

00:36:22.395 --> 00:36:27.870
Acho que vejo um, dois, três, quatro.

00:36:27.870 --> 00:36:29.400
Não, há muito
de coisas lá dentro.

00:36:29.400 --> 00:36:31.320
Ok. Vamos piscar estes porque eu sou

00:36:31.320 --> 00:36:34.150
Não tenho certeza o que está aqui,
Há tantas coisas.

00:36:37.950 --> 00:36:41.890
Ok. Um, dois, três, quatro, ok.

00:36:41.890 --> 00:36:45.235
Assim, para a grade inferior é
toda esta área de fundo,

00:36:45.235 --> 00:36:46.990
Eu não preciso de toda a área de fundo.

00:36:46.990 --> 00:36:50.140
Então eu vou usar a última criança,

00:36:50.140 --> 00:36:53.650
e vamos ver o que está
no, lá vamos nós.

00:36:53.650 --> 00:36:55.450
Estamos chegando mais perto agora, certo?

00:36:55.450 --> 00:37:00.780
Então, nem sempre vai
ser um caso feliz onde você pode

00:37:00.780 --> 00:37:02.880
escrever essas identificações perfeitas
e você sabe manter

00:37:02.880 --> 00:37:06.765
um conjunto único e perfeito de identificadores
para o elemento na tela.

00:37:06.765 --> 00:37:08.790
Eu não ficaria muito decidido sobre isso.

00:37:08.790 --> 00:37:11.790
Ter qualquer coisa e
obtendo apenas testes básicos

00:37:11.790 --> 00:37:13.470
indo é muito mais importante do que

00:37:13.470 --> 00:37:15.545
tentando encontrar IDs exclusivas
para qualquer elemento.

00:37:15.545 --> 00:37:17.740
Então, contanto que o teste não quebre,

00:37:17.740 --> 00:37:20.530
é um pouco quebradiço neste momento
Eu concordo, mas então isso é

00:37:20.530 --> 00:37:23.470
Quando você pode fazer este teste e
mostrá-lo para a equipe e ser como,

00:37:23.470 --> 00:37:25.315
"Hey, isso é realmente útil."

00:37:25.315 --> 00:37:27.115
Vamos começar a adicionar,

00:37:27.115 --> 00:37:28.390
o fato de que estes vão ser

00:37:28.390 --> 00:37:29.770
testado e vamos ser mais conscientes,

00:37:29.770 --> 00:37:31.660
adicionar mais nomes para
essas coisas no futuro.

00:37:31.660 --> 00:37:33.280
Então, vamos entrar.

00:37:33.280 --> 00:37:35.425
Eu acho que foi o segundo botão,

00:37:35.425 --> 00:37:38.020
Ele vai verificar. Sim. É só isso.

00:37:38.020 --> 00:37:42.055
Então, o próximo passo, literalmente, seria,

00:37:42.055 --> 00:37:44.080
Eu posso simplesmente entrar aqui.

00:37:44.080 --> 00:37:46.090
É aqui que a beleza
Entra, certo?

00:37:46.090 --> 00:37:49.270
Então, vamos chamá-lo.

00:37:49.270 --> 00:37:58.040
Então, há o botão shuffle
e há, vamos lá.

00:37:59.460 --> 00:38:02.395
O que estava no botão de repetição?

00:38:02.395 --> 00:38:04.150
Eles são uma espécie de porta ao lado
um para o outro, certo?

00:38:04.150 --> 00:38:06.550
Então, vamos otimizar a configuração deste.

00:38:06.550 --> 00:38:09.430
Então é aqui que você Inicializa

00:38:09.430 --> 00:38:13.435
as consultas para
cada controle na página.

00:38:13.435 --> 00:38:18.235
Então, este é o lugar onde a plataforma cruzada
parte do objeto de página é reproduzido.

00:38:18.235 --> 00:38:21.310
Se a consulta for a
mesmo em ambas as plataformas,

00:38:21.310 --> 00:38:23.395
Este atual é um grande exemplo.

00:38:23.395 --> 00:38:25.600
Eu não acho que vai ser
o mesmo em cada um só porque nós

00:38:25.600 --> 00:38:28.240
tinha que passar por como
a cama e filho de uma coisa,

00:38:28.240 --> 00:38:32.230
e layouts de interface do usuário no iOS e
Android pode ser um pouco diferente.

00:38:32.230 --> 00:38:33.700
Então este é um bom candidato do que não.

00:38:33.700 --> 00:38:36.940
Isso provavelmente não vai
para ser um valor compartilhado,

00:38:36.940 --> 00:38:39.730
Mas algo como
o comércio agora em execução.

00:38:39.730 --> 00:38:41.320
Já que é o mesmo
em ambas as plataformas,

00:38:41.320 --> 00:38:43.105
Você poderia apenas literalmente
entrar apenas ir como

00:38:43.105 --> 00:38:46.405
Shuffle Button e, em seguida, apenas
soltar a consulta aqui,

00:38:46.405 --> 00:38:47.710
e isso significa apenas que Oh uso

00:38:47.710 --> 00:38:50.005
o mesmo valor de consulta
para quais plataformas.

00:38:50.005 --> 00:38:52.450
Mas se é diferente para cada um,

00:38:52.450 --> 00:38:53.875
Vamos apenas separá-lo.

00:38:53.875 --> 00:38:56.875
Então, se em ambas as plataformas,

00:38:56.875 --> 00:38:58.885
como você vai fazer para ter

00:38:58.885 --> 00:39:00.460
determinadas definições diferentes no iOS e

00:39:00.460 --> 00:39:02.575
Andróide e conceito similar das empresas.

00:39:02.575 --> 00:39:05.065
Então é isso que o
Shuffle Button parece,

00:39:05.065 --> 00:39:08.725
e temos o botão de repetição

00:39:08.725 --> 00:39:12.955
eo índice de que
foi apenas, porém,

00:39:12.955 --> 00:39:14.410
Acho que troquei o índice.

00:39:14.410 --> 00:39:17.935
Então este é um, este é
dois, [inaudível] boom.

00:39:17.935 --> 00:39:20.560
É só isso. Ok. Você
poderia, neste momento

00:39:20.560 --> 00:39:23.725
na verdade, apenas continuar e
colocar os métodos de página.

00:39:23.725 --> 00:39:26.650
Assim como para esta página
e agora jogando,

00:39:26.650 --> 00:39:34.790
Esta será a imprensa
dizer shuffle Button.

00:39:36.720 --> 00:39:40.915
Eu vou devolver isso,

00:39:40.915 --> 00:39:42.940
Só porque este é
uma ação que não é

00:39:42.940 --> 00:39:44.695
navegando perto da maneira fora desta página.

00:39:44.695 --> 00:39:46.150
Eu vou ficar e eu posso

00:39:46.150 --> 00:39:48.670
continuar fazendo
mais coisas nesta página.

00:39:48.670 --> 00:39:51.370
Depois disso eu posso ir e
Clique no botão que aparece.

00:39:51.370 --> 00:39:53.050
Eu posso ir clique no botão de compartilhamento.

00:39:53.050 --> 00:39:55.255
Eu posso ir clique no botão de reticências.

00:39:55.255 --> 00:39:57.310
Então isso é o que eu estava

00:39:57.310 --> 00:39:59.290
falando antes de ações
que ficam na página,

00:39:59.290 --> 00:40:00.865
torná-lo retornar o próprio tipo de página.

00:40:00.865 --> 00:40:03.325
Porque quando você escreve um teste,

00:40:03.325 --> 00:40:06.460
pode corda longitudinalmente.

00:40:06.460 --> 00:40:08.320
Então outra coisa boa
Eu gosto de fazer é,

00:40:08.320 --> 00:40:10.210
Eu sempre gosto de esperar
para um elemento para

00:40:10.210 --> 00:40:12.775
aparecer antes de eu fazer qualquer ação sobre ele.

00:40:12.775 --> 00:40:16.510
É apenas como assertivo
visível verdadeiro ou assertivo,

00:40:16.510 --> 00:40:17.680
Mas eu só tento usar o peso para

00:40:17.680 --> 00:40:19.390
elemento apenas porque
Ele tem um construído em

00:40:19.390 --> 00:40:22.870
mecanismo de repetição já
cozido nele de teste de interface do usuário.

00:40:22.870 --> 00:40:25.720
Torna-o super agradável.
Faz o meu teste sentir um

00:40:25.720 --> 00:40:28.915
pouco mais como eu sinto
melhor sobre isso antes.

00:40:28.915 --> 00:40:30.760
Só para garantir que o elemento
foi realmente

00:40:30.760 --> 00:40:33.115
renderizados na tela
antes de eu tocar nele.

00:40:33.115 --> 00:40:37.690
Então, vamos apenas para ver o que estava em

00:40:37.690 --> 00:40:43.450
guarda prima REPEAT porque

00:40:43.450 --> 00:40:45.760
Eu quero te mostrar o que
o amarrando dos testes parece.

00:40:45.760 --> 00:40:48.085
Então, vamos devolver isso.

00:40:48.085 --> 00:40:53.720
Mais uma vez, app. WaitFor botão de repetição,

00:40:54.120 --> 00:41:00.805
e aplicativo. Toque em repetir botão.

00:41:00.805 --> 00:41:04.825
Está bem. Então agora faça
Estou pronto?

00:41:04.825 --> 00:41:08.020
O próximo passo literalmente
esquerda para fazer seria eu

00:41:08.020 --> 00:41:10.480
relançar um repl novamente
Mas para iOS desta vez,

00:41:10.480 --> 00:41:12.670
e tudo o que farei
para iOS é ir e

00:41:12.670 --> 00:41:15.265
encontrar as consultas para
esses dois botões.

00:41:15.265 --> 00:41:17.260
É isso, minha página está configurada.

00:41:17.260 --> 00:41:19.240
Isso é tudo que você tem que
fazer. Então isso é apenas

00:41:19.240 --> 00:41:20.860
todo o Buy-in inicial que você precisa.

00:41:20.860 --> 00:41:22.330
Este é todo o tempo que você gastaria

00:41:22.330 --> 00:41:23.815
a primeira vez que apenas configurá-los,

00:41:23.815 --> 00:41:25.120
e depois que eles estão
super simples, porque

00:41:25.120 --> 00:41:26.725
Agora o que eu vou ir adicionar um teste.

00:41:26.725 --> 00:41:28.240
Vamos adicionar um novo teste.

00:41:28.240 --> 00:41:32.630
Então vamos chamá-lo agora teste de piscar.

00:41:32.640 --> 00:41:37.180
Eu vou entrar aqui,

00:41:37.180 --> 00:41:38.890
Adicionar no BaseTestFixture.

00:41:38.890 --> 00:41:43.130
Isso precisa de plataforma.

00:41:44.430 --> 00:41:49.760
Indo, adicione isso,

00:41:50.310 --> 00:41:54.640
plataforma, boom. É só isso.

00:41:54.640 --> 00:41:56.950
Você está pronto. Para escrever um teste,

00:41:56.950 --> 00:41:58.930
Vamos colocar uma etiqueta de teste,

00:41:58.930 --> 00:42:00.940
Não tem unidade N aqui.

00:42:00.940 --> 00:42:02.890
Então, vamos puxar a unidade de N, depois disso.

00:42:02.890 --> 00:42:07.105
Então, void público. Vamos chamá-lo,

00:42:07.105 --> 00:42:12.760
XamDevSummitTest porque eu sou
grande com nomes. Está bem.

00:42:12.760 --> 00:42:16.000
Então, vindo para a nova homepage,

00:42:16.000 --> 00:42:18.970
e então você quer
vai abrir agora a jogar.

00:42:18.970 --> 00:42:22.240
Boom, é isso. Isto é
minha primeira ação. A próxima coisa.

00:42:22.240 --> 00:42:23.560
Agora que eu abri agora playing,

00:42:23.560 --> 00:42:24.730
Estou na página agora a jogar.

00:42:24.730 --> 00:42:28.690
Tão novo agora jogando página. O que foi?

00:42:28.690 --> 00:42:32.890
Então, vamos pressionar REPEAT e depois
Eu quero continuar fazendo ações,

00:42:32.890 --> 00:42:38.020
e então eu vou pressionar
o botão shuffle. É só isso.

00:42:38.020 --> 00:42:41.740
Assim, seu teste de interface do usuário como tipo de
fluindo e indo e funcionando em

00:42:41.740 --> 00:42:46.510
através e mantendo-o

00:42:46.510 --> 00:42:48.520
Agora avançando,
Apenas pense nisso.

00:42:48.520 --> 00:42:50.050
Se você voltar depois de um par de

00:42:50.050 --> 00:42:52.240
dias ou um par de meses
e você lê este teste,

00:42:52.240 --> 00:42:53.320
Você é como, "Oh Ok,

00:42:53.320 --> 00:42:55.510
Sim, eu estou testando o
funcionalidade para os Estados.

00:42:55.510 --> 00:42:57.940
Nada é ambíguo. Nada
é estranho, tudo faz sentido.

00:42:57.940 --> 00:43:02.800
É legível. " Sim. Então é
uma estrutura que usamos um pouco.

00:43:02.800 --> 00:43:05.290
É popular withing
minha equipe e nós tivemos

00:43:05.290 --> 00:43:08.200
algum bom compartilhamento de feedback
com outras pessoas.

00:43:08.200 --> 00:43:12.475
Então é assim que literalmente
implementação parece.

00:43:12.475 --> 00:43:14.935
O que sobrou para mostrar?

00:43:14.935 --> 00:43:17.485
Está bem, sim. Então eu quero
rapidamente voltar aqui.

00:43:17.485 --> 00:43:19.600
Eu cobri muito disso agora mesmo.
Quando eu estava falando sobre isso,

00:43:19.600 --> 00:43:23.815
Mas apenas outras dicas úteis de teste de interface do usuário.

00:43:23.815 --> 00:43:25.570
Novamente teste em dispositivos reais como eu sou

00:43:25.570 --> 00:43:28.135
Agora, é super útil.

00:43:28.135 --> 00:43:30.370
Se você colocar pontos de interrupção em seus testes

00:43:30.370 --> 00:43:32.215
e você está se perguntando como
para acertar esses pontos de interrupção.

00:43:32.215 --> 00:43:34.000
Então, se você apenas clicar duas vezes
e executar um teste,

00:43:34.000 --> 00:43:35.380
Não vai bater neles.

00:43:35.380 --> 00:43:37.330
Clique com o botão direito do mouse e depurar,

00:43:37.330 --> 00:43:39.760
e é então ele vai começar
atingindo seus pontos de interrupção.

00:43:39.760 --> 00:43:41.590
Mostrei-lhe a declaração de uso.

00:43:41.590 --> 00:43:45.145
Eu mostrei-lhe os casos de teste
e categorias.

00:43:45.145 --> 00:43:50.410
Esta é apenas outras práticas recomendadas
que tentamos compartilhar,

00:43:50.410 --> 00:43:52.390
mantendo-o que cada desolado

00:43:52.390 --> 00:43:54.580
independente dentro de seu status
é uma boa prática.

00:43:54.580 --> 00:43:57.370
Não amarrar atividades em cadeia
Porque suponha que um teste falhe,

00:43:57.370 --> 00:43:58.780
Você não quer como
Tudo o mais para falhar.

00:43:58.780 --> 00:44:01.540
Você quer algum útil
informações para sair.

00:44:01.540 --> 00:44:03.550
Seja determinista.

00:44:03.550 --> 00:44:06.580
Você pode colocar em portas traseiras
que você pode invocar em

00:44:06.580 --> 00:44:07.900
seus aplicativos para coisas como

00:44:07.900 --> 00:44:10.180
autenticação ou você quer
para marcar um serviço de dados.

00:44:10.180 --> 00:44:13.190
As portas traseiras são
uma grande coisa a olhar em.

00:44:13.200 --> 00:44:16.090
O que mais? Tente não repetir.

00:44:16.090 --> 00:44:20.290
Use boas asserções, então
elementos de assort são visíveis,

00:44:20.290 --> 00:44:21.430
peso que os elementos são visíveis,

00:44:21.430 --> 00:44:22.630
elemento de peso foi embora.

00:44:22.630 --> 00:44:24.850
[inaudível] são ótimos para animações.

00:44:24.850 --> 00:44:26.290
Então, se você tem
uma animação de transição,

00:44:26.290 --> 00:44:27.850
colocando-o longe e esperar por

00:44:27.850 --> 00:44:30.040
nenhum elemento é uma grande coisa para usar.

00:44:30.040 --> 00:44:32.320
Evite thread. sleeps.

00:44:32.320 --> 00:44:34.015
Essa é a pior coisa que você poderia.

00:44:34.015 --> 00:44:35.650
Não coloque thread. sleeps.

00:44:35.650 --> 00:44:38.380
Mais uma vez, basta ter cuidado se você loop.

00:44:38.380 --> 00:44:40.495
Looping não é seu amigo.

00:44:40.495 --> 00:44:42.220
Então eu fui um pouco de horas extras,

00:44:42.220 --> 00:44:45.620
Mas eu posso fazer rapidamente
perguntas, então perguntas.

00:44:46.230 --> 00:44:49.510
Basta ir em frente para o microfone para

00:44:49.510 --> 00:44:51.120
que todos os outros
on-line pode ouvi-lo também.

00:44:51.120 --> 00:44:52.690
>> Então, quando você mencionou backdoors,

00:44:52.690 --> 00:44:54.955
Você só então escrever
um método dentro do seu código?

00:44:54.955 --> 00:44:57.700
>> Sim, exatamente. Então você
deseja manter os para iOS,

00:44:57.700 --> 00:44:58.945
colocá-los no aplicativo delegado

00:44:58.945 --> 00:45:01.420
e no Android colocando
sua atividade principal,

00:45:01.420 --> 00:45:03.430
e então você pode invocar
que o mesmo nome de cadeia

00:45:03.430 --> 00:45:06.470
em seu teste e você pode
fazer o que quiser.

00:45:06.540 --> 00:45:09.070
>> Então, para os relatórios,

00:45:09.070 --> 00:45:12.280
Há planos futuros para
fazendo um visualizador como ele,

00:45:12.280 --> 00:45:14.575
como nós temos para a árvore XML?

00:45:14.575 --> 00:45:16.780
>> Vamos falar sobre isso.
Venha me encontrar no

00:45:16.780 --> 00:45:18.670
o estande e eu adoro ouvir idéias.

00:45:18.670 --> 00:45:21.670
Eu ouvi este feedback
e eu adoro saber

00:45:21.670 --> 00:45:22.780
mais e podemos olhar para

00:45:22.780 --> 00:45:24.895
algo sobre fazer
algo assim, sim.

00:45:24.895 --> 00:45:27.220
>> Outro em sua página base,

00:45:27.220 --> 00:45:29.665
Você devolviu isso.

00:45:29.665 --> 00:45:31.630
Sempre retornar a página errada.

00:45:31.630 --> 00:45:34.420
Então não temos que esperar por isso?

00:45:34.420 --> 00:45:37.630
Então, se você está fazendo o carregamento de dados
e seu Spinner está acima antes,

00:45:37.630 --> 00:45:38.860
Nós vamos para a página, temos

00:45:38.860 --> 00:45:40.150
fazer algo para isso, especialmente?

00:45:40.150 --> 00:45:44.095
>> Sim. Assim você pode totalmente
jogá-lo na página base.

00:45:44.095 --> 00:45:45.850
Essa foi apenas uma maneira
de usar a página base.

00:45:45.850 --> 00:45:47.110
Eu só quero destacar o poder de

00:45:47.110 --> 00:45:48.730
tendo métodos compartilhados lá.

00:45:48.730 --> 00:45:51.310
Você pode realmente apenas escrever
uma extensão ou como um ajudante,

00:45:51.310 --> 00:45:52.540
e, em seguida, colocar algo como,

00:45:52.540 --> 00:45:53.950
Você sabe que você está
esperando uma animação.

00:45:53.950 --> 00:45:55.990
Então, apenas seja como, Hey, espere
para que o spinner vá embora.

00:45:55.990 --> 00:45:57.415
Então, não espere nenhum elemento,

00:45:57.415 --> 00:46:00.820
e colocar no ID para o Spinner
ou apenas usar a classe Spinner,

00:46:00.820 --> 00:46:02.890
e, em seguida, basta verificar
que o spinner tem

00:46:02.890 --> 00:46:05.050
ido embora e, em seguida, começar
fazendo suas ações. Sim.

00:46:05.050 --> 00:46:07.995
>> Sim. Uma última pergunta talvez
Não é realmente na sua área,

00:46:07.995 --> 00:46:09.360
Mas você tirar screenshots.

00:46:09.360 --> 00:46:11.070
Existe alguma coisa que você pode fazer

00:46:11.070 --> 00:46:15.075
para screenshots correspondentes
com testes anteriores como,

00:46:15.075 --> 00:46:16.650
Porque se você estiver fazendo UI,

00:46:16.650 --> 00:46:18.120
Você quer saber que
seus elementos são

00:46:18.120 --> 00:46:20.160
ainda na tela
em vez de fora da tela,

00:46:20.160 --> 00:46:22.995
Eu não sei se você pode
fazer isso nos relatórios.

00:46:22.995 --> 00:46:25.575
>> Não, agora não.

00:46:25.575 --> 00:46:29.440
Mais uma vez, já ouvi falar de pessoas
querendo uma ferramenta que poderia fazer isso.

00:46:29.440 --> 00:46:30.895
Eu acho que é uma ótima idéia também.

00:46:30.895 --> 00:46:32.605
A única coisa que eu posso pensar é,

00:46:32.605 --> 00:46:34.975
Se você carregar esses testes
para o app Center,

00:46:34.975 --> 00:46:36.685
Ele gera esses relatórios para você.

00:46:36.685 --> 00:46:38.200
Vai ser como uma verificação manual embora

00:46:38.200 --> 00:46:39.910
Não há nenhuma maneira automatizada de fazê-lo.

00:46:39.910 --> 00:46:42.370
Talvez você possa usar os serviços cognitivos
e construir essa ferramenta,

00:46:42.370 --> 00:46:43.895
e eu adoraria ajudá-lo com isso.

00:46:43.895 --> 00:46:44.490
>> Tudo bem. Obrigado.

00:46:44.490 --> 00:46:44.990
>> Sim.

00:46:44.990 --> 00:46:48.790
>> Oi, eu notei que em
um dos seus testes que você

00:46:48.790 --> 00:46:52.630
tinha um método de arrasto com
alguns kubernetes embutido.

00:46:52.630 --> 00:46:52.900
>> Sim.

00:46:52.900 --> 00:46:54.100
>> Isso vai dar-lhe problemas

00:46:54.100 --> 00:46:55.180
em tamanho diferente para [inaudível]?

00:46:55.180 --> 00:46:57.565
>> É totalmente e
Não é a maneira recomendada de fazê-lo.

00:46:57.565 --> 00:46:59.875
Foi só para esta demo,
Eu só queria deslizar.

00:46:59.875 --> 00:47:01.090
Eu nem sequer deslizar tão bem,

00:47:01.090 --> 00:47:05.350
Mas a maneira ideal de realmente
fazer isso é novamente consulta

00:47:05.350 --> 00:47:07.390
para esse elemento e usar
coordenadas x e y

00:47:07.390 --> 00:47:09.880
Porque isso é um mini Player
e eu tenho o ID para ele.

00:47:09.880 --> 00:47:11.770
Então você deve em
boa prática estar fazendo isso,

00:47:11.770 --> 00:47:14.140
e é isso que eu vou ser
fazendo para o código real.

00:47:14.140 --> 00:47:15.790
Eu quero PR isso em Clancy,

00:47:15.790 --> 00:47:17.785
Limpe isso, faça parecer mais agradável.

00:47:17.785 --> 00:47:20.560
Por favor, entre e dê uma olhada.
em que e me dar feedback

00:47:20.560 --> 00:47:23.140
ou apenas entrar e contribuir
mais código lá. Então, sim.

00:47:23.140 --> 00:47:24.310
>> Obrigado.

00:47:24.310 --> 00:47:27.100
>> Então, e há realmente eu
Acho que nos meus correctores são

00:47:27.100 --> 00:47:29.500
como um deslize para recurso
Onde você pode colocar.

00:47:29.500 --> 00:47:31.015
Então, certifique-se de deslizar para ele.

00:47:31.015 --> 00:47:32.170
>> Sim, você pode deslizar para ele.

00:47:32.170 --> 00:47:34.165
Você pode deslizar a ferramenta,

00:47:34.165 --> 00:47:36.370
leva ou você pode colocar
em um elemento que você deseja

00:47:36.370 --> 00:47:39.010
alvo para ou como um x e y
coordenada que você deseja ir.

00:47:39.010 --> 00:47:43.255
Sim. Ok, assim como
mais duas perguntas que eu acho que sim.

00:47:43.255 --> 00:47:44.830
>> Muitas vezes achamos que
Quando estamos gravando

00:47:44.830 --> 00:47:47.485
Testes de interface do usuário exigem tempos limite,

00:47:47.485 --> 00:47:48.820
que eles trabalham muito em

00:47:48.820 --> 00:47:50.950
máquinas locais e
nosso servidor de compilação, mas eles

00:47:50.950 --> 00:47:56.185
sentiu-se continuamente ausente ou
Existe uma maneira de contornar isso?

00:47:56.185 --> 00:47:58.105
>> Vamos-Venha me encontrar na cabine.

00:47:58.105 --> 00:48:00.325
Eu adoro ver o que exatamente
está acontecendo. Sim.

00:48:00.325 --> 00:48:05.800
>> É testes de IU do Xamarin como
Estrutura ativamente mantida-

00:48:05.800 --> 00:48:06.130
>> Sim.

00:48:06.130 --> 00:48:08.035
>>-Porque eu tenho
Ouvi outra coisa.

00:48:08.035 --> 00:48:10.495
>> Não, ele está sendo
ativamente trabalhado.

00:48:10.495 --> 00:48:12.985
Ele apenas atualizado para teste de interface do usuário

00:48:12.985 --> 00:48:16.570
3,0 porque agora temos
NUnit apoio 3,0.

00:48:16.570 --> 00:48:18.520
Então, sim, eles estão ativamente
trabalhando nisso. Sim.

00:48:18.520 --> 00:48:19.015
>> Obrigado.

00:48:19.015 --> 00:48:21.565
Está bem. Isso é tudo perguntas
Posso levar agora mesmo.

00:48:21.565 --> 00:48:22.660
Estarei na cabine,

00:48:22.660 --> 00:48:23.980
Então, por favor venha e me encontrar e

00:48:23.980 --> 00:48:25.585
Pergunte-me todas as outras perguntas
que você tem.

00:48:25.585 --> 00:48:28.240
Eu adoraria olhar para qualquer código de teste de interface do usuário
que você precisa de ajuda,

00:48:28.240 --> 00:48:30.320
Mas muito obrigado.

