WEBVTT

00:00:00.000 --> 00:00:02.790
>> Non c'è riavvio su
il mio timer in modo da sapere dove mi trovo.

00:00:02.790 --> 00:00:06.030
Ciao a tutti. Buon pomeriggio.

00:00:06.030 --> 00:00:10.170
Com'è il pranzo? Tutti hanno goduto
questo sottaceti giganti? Lo so che l'ho fatto.

00:00:10.170 --> 00:00:12.315
Sì, fantastico.

00:00:12.315 --> 00:00:17.565
Quindi questa sessione è
sui test U(I),

00:00:17.565 --> 00:00:19.935
quindi, si u(I) test?

00:00:19.935 --> 00:00:22.950
Quindi, prima di iniziare, questo è
la mia domanda preferita nel mondo.

00:00:22.950 --> 00:00:24.705
Questo è facile.

00:00:24.705 --> 00:00:29.175
Quante persone scrivono
Test? Alzate le mani.

00:00:29.175 --> 00:00:31.830
Tutti in streaming,
che è un bel paio di mani.

00:00:31.830 --> 00:00:34.305
Sono sorpreso, sono molto felice.

00:00:34.305 --> 00:00:38.290
Ora, quanti di voi U(I) prova?

00:00:39.130 --> 00:00:41.705
Non male, è fantastico.

00:00:41.705 --> 00:00:44.060
Beh, questa sessione è fondamentalmente,

00:00:44.060 --> 00:00:48.635
e quindi non ho intenzione di fare
le basi del funzionamento del test U(I),

00:00:48.635 --> 00:00:51.350
c'è un sacco di buon contenuto
là fuori già per questo.

00:00:51.350 --> 00:00:54.185
E 'super semplice, è
esaminare il test U(I).

00:00:54.185 --> 00:00:56.735
Il quadro sarò
parlando di oggi è

00:00:56.735 --> 00:00:58.070
letteralmente solo fatto per

00:00:58.070 --> 00:01:00.740
rendendo U(I) test super
semplice e super grande.

00:01:00.740 --> 00:01:04.820
Quindi quello di cui stiamo parlando oggi
sono le migliori pratiche e come

00:01:04.820 --> 00:01:08.000
scrivere qualcosa che
è stato parlato molto

00:01:08.000 --> 00:01:11.195
nel Keynote di oggi,
test U(I) multipiattaforma.

00:01:11.195 --> 00:01:14.435
Allora chi sono io?

00:01:14.435 --> 00:01:16.220
Sono abbastanza sicuro che nessuno mi conosca.

00:01:16.220 --> 00:01:19.715
Io non sono famoso come
molto, ma io sono Sweeky.

00:01:19.715 --> 00:01:24.250
Io lavoro in quello che noi chiamiamo il
Team di consulenza clienti DevOps,

00:01:24.250 --> 00:01:25.950
e sono nel sottoinsieme che si chiama

00:01:25.950 --> 00:01:28.570
team di consulenza clienti mobile.

00:01:28.730 --> 00:01:31.260
Siamo davvero un sacco di persone cool,

00:01:31.260 --> 00:01:32.905
amiamo Xamarin, amiamo Mobile,

00:01:32.905 --> 00:01:35.000
e lavoriamo nel rendere i clienti

00:01:35.000 --> 00:01:37.310
felice e lavoriamo nel fare
meglio i nostri prodotti.

00:01:37.310 --> 00:01:39.710
Quindi facciamo un sacco di feedback,

00:01:39.710 --> 00:01:42.025
quindi qualsiasi cosa tu voglia dire,

00:01:42.025 --> 00:01:44.270
Mobile di cui vuoi parlare,

00:01:44.270 --> 00:01:47.015
scarpe da ginnastica, qualunque cosa,
vieni a cercarmi.

00:01:47.015 --> 00:01:50.240
Lavoro nell'ufficio di San Francisco.

00:01:50.240 --> 00:01:53.575
Sono noto al codice per le caramelle,

00:01:53.575 --> 00:01:56.055
quindi se mai mi vuoi
per scrivere i test U(I),

00:01:56.055 --> 00:01:58.170
sai come corrompermi, e io sono

00:01:58.170 --> 00:02:01.660
un die-hard Microsoft e
un tifoso di Xamarin.

00:02:03.380 --> 00:02:05.670
Ora che sai chi sono,

00:02:05.670 --> 00:02:08.070
seguimi su Twitter, sii mio amico.

00:02:08.070 --> 00:02:10.110
Mettiamoci alla prova.

00:02:10.110 --> 00:02:13.035
Quindi Xamarin U(I) test.

00:02:13.035 --> 00:02:15.045
Per chi non è familiare,

00:02:15.045 --> 00:02:21.030
è un'unità basata su NUnit
quadro di prova,

00:02:21.030 --> 00:02:24.435
ma in C Sharp, e permette
per scrivere il test U(I).

00:02:24.435 --> 00:02:27.434
Ha lo scopo di essere utilizzato
con piattaforme mobili,

00:02:27.434 --> 00:02:30.505
in modo che le applicazioni non sempre
devono essere un app Xamarin,

00:02:30.505 --> 00:02:32.690
in modo che possano essere un ReactNative App,
possono essere nativi,

00:02:32.690 --> 00:02:33.980
App Android o iOS,

00:02:33.980 --> 00:02:36.425
si può ancora scrivere
U(I) prova per loro.

00:02:36.425 --> 00:02:39.420
Se hai familiarità
con il funzionamento di NUnit,

00:02:39.420 --> 00:02:42.065
la loro sintassi o il test sarà
sembrano abbastanza familiare a voi.

00:02:42.065 --> 00:02:43.280
Quindi c'è un tag di fissaggio di prova,

00:02:43.280 --> 00:02:46.220
c'è un tag di prova, sei
facendo qualche configurazione prima di un test,

00:02:46.220 --> 00:02:48.380
si esegue il test, e poi si

00:02:48.380 --> 00:02:51.140
può avere qualcosa che
avviene dopo il test.

00:02:51.140 --> 00:02:54.515
Si prega di semplice,
Test Xamarin U(I),

00:02:54.515 --> 00:02:57.620
è possibile eseguire questi test
localmente, e poi, se si desidera,

00:02:57.620 --> 00:02:59.480
è possibile utilizzare l'applicazione
server di test al centro e

00:02:59.480 --> 00:03:02.155
quindi eseguire i test
sui nostri laboratori di dispositivi.

00:03:02.155 --> 00:03:06.020
Inoltre si integra molto bene
con le vostre pipeline CICD,

00:03:06.020 --> 00:03:08.825
che è la mia parte preferita
dell'intero processo.

00:03:08.825 --> 00:03:12.000
Quindi la descrizione di
il discorso ha detto molto

00:03:12.000 --> 00:03:15.140
circa pop del modello di oggetto pagina.

00:03:15.140 --> 00:03:17.510
Allora, cos'è esattamente questo?

00:03:17.510 --> 00:03:20.765
Quindi parliamone in questo modo.

00:03:20.765 --> 00:03:25.550
Le app per dispositivi mobili di solito vengono con
un mucchio di punti di vista diversi,

00:03:25.550 --> 00:03:27.740
quando in realtà scriviamo applicazioni Xamarin,

00:03:27.740 --> 00:03:30.470
abbiamo un mucchio di
viste, se è MVVM,

00:03:30.470 --> 00:03:32.060
avete le vostre opinioni
e hai il codice

00:03:32.060 --> 00:03:33.830
dietro per ogni vista, questo e quello,

00:03:33.830 --> 00:03:35.850
concetto così semplice, pensare

00:03:35.850 --> 00:03:38.400
della vostra App di essere un gruppo
di pagine diverse,

00:03:38.400 --> 00:03:40.560
così quando si vuole scrivere

00:03:40.560 --> 00:03:42.930
u(I) verifica con
il modello di oggetto della pagina,

00:03:42.930 --> 00:03:44.450
stiamo andando a trattare ogni pagina

00:03:44.450 --> 00:03:47.540
individualmente come
la propria classe indipendente.

00:03:47.540 --> 00:03:51.035
Quindi gli elementi in quella pagina
vivere in questa classe,

00:03:51.035 --> 00:03:52.730
interazioni che si possono fare con

00:03:52.730 --> 00:03:55.145
questi elementi vivono
all'interno della stessa classe.

00:03:55.145 --> 00:03:57.790
Quindi, se hai un pulsante a pagina a,

00:03:57.790 --> 00:04:01.880
tutto il codice nella pagina
classe di a sarebbe una query su

00:04:01.880 --> 00:04:03.320
come il sistema troverà

00:04:03.320 --> 00:04:06.410
quel pulsante e qualsiasi metodo
per interagire con un pulsante.

00:04:06.410 --> 00:04:10.250
Quindi fai clic su un pulsante
o se è una lista,

00:04:10.250 --> 00:04:11.485
quindi scorri su un elenco,

00:04:11.485 --> 00:04:13.790
tutti quei metodi per
che una pagina vive lì.

00:04:13.790 --> 00:04:15.125
Pagina b per l'app,

00:04:15.125 --> 00:04:18.215
classe separata, del tutto
ha le sue cose.

00:04:18.215 --> 00:04:23.030
L'idea principale dietro il fare
questo è il fatto che,

00:04:23.030 --> 00:04:25.285
dal momento che si sta separando
tutte queste pagine,

00:04:25.285 --> 00:04:27.275
è davvero facile da mantenere.

00:04:27.275 --> 00:04:29.840
Quindi supponiamo di andare in
e si apporta un cambiamento

00:04:29.840 --> 00:04:32.710
solo per come forse il
nella pagina delle impostazioni nell'app,

00:04:32.710 --> 00:04:34.310
tutto quello che dovete fare è andare

00:04:34.310 --> 00:04:36.035
alla pagina delle impostazioni
del vostro test e solo

00:04:36.035 --> 00:04:37.475
aggiornare i valori lì e questo è

00:04:37.475 --> 00:04:39.605
il test sono tornati a correre di nuovo.

00:04:39.605 --> 00:04:41.460
Quindi è super facile da mantenere,

00:04:41.460 --> 00:04:43.620
super facile da scalare orizzontalmente,

00:04:43.620 --> 00:04:45.990
e poi arriva la mia parte preferita

00:04:45.990 --> 00:04:48.490
di questo modello è
attraverso la piattaforma.

00:04:48.490 --> 00:04:51.775
Così che la stessa pagina può
esistono su iOS o Android.

00:04:51.775 --> 00:04:56.005
Allora, quale potrebbe essere il possibile
nessun fattore di differenziazione qui?

00:04:56.005 --> 00:04:58.790
Su Android, il pulsante potrebbe avere

00:04:58.790 --> 00:05:01.260
una query separata e poi anche

00:05:01.260 --> 00:05:02.460
forse c'è un po 'di un

00:05:02.460 --> 00:05:04.110
nessun comportamento tattile diverso,

00:05:04.110 --> 00:05:07.535
in modo da poter gestire che nel codice
con i controlli sul dispositivo.

00:05:07.535 --> 00:05:09.260
Quindi, ancora una volta, super semplice,

00:05:09.260 --> 00:05:10.520
super facile da configurare,

00:05:10.520 --> 00:05:12.965
e vedremo di più su di esso ora.

00:05:12.965 --> 00:05:15.230
Quindi quello che stavo parlando

00:05:15.230 --> 00:05:17.760
circa visivamente solo
immaginando il tutto.

00:05:17.760 --> 00:05:20.485
Quindi questi sono diversi
pagine dell'app,

00:05:20.485 --> 00:05:23.855
prendere ogni pagina e girare
ogni pagina in una classe,

00:05:23.855 --> 00:05:26.420
questo è letteralmente come i primi passi

00:05:26.420 --> 00:05:29.075
di scrivere la pagina
viene avviato il modello di oggetto.

00:05:29.075 --> 00:05:33.840
Quindi, se si vuole essere un
un po 'più di fantasia su di esso,

00:05:33.840 --> 00:05:35.855
quando hai finito di impostare

00:05:35.855 --> 00:05:37.130
l'intero modello di architettura e

00:05:37.130 --> 00:05:38.440
quando si torna indietro e
guardate i vostri test,

00:05:38.440 --> 00:05:39.650
non ci sarà mai

00:05:39.650 --> 00:05:41.660
un punto che ti senti come,
"Oh, cosa ho scritto?

00:05:41.660 --> 00:05:43.280
Che cosa significa questo?
Ci sarà

00:05:43.280 --> 00:05:46.720
una correlazione diretta tra
l'app e i test.

00:05:46.720 --> 00:05:51.120
Quindi lo rende così tanto
più bello scrivere i vostri test,

00:05:51.120 --> 00:05:54.710
Mi sento come se incoraggia solo
tutti da riservare,

00:05:54.710 --> 00:05:56.555
mantenere e scrivere un buon test U(I),

00:05:56.555 --> 00:05:59.065
che penso sia molto importante.

00:05:59.065 --> 00:06:01.020
Se posso, lo dirò,

00:06:01.020 --> 00:06:02.395
Lo dico sempre,

00:06:02.395 --> 00:06:05.900
ma viviamo nell'era
applicazioni mobili e viviamo nell'era

00:06:05.900 --> 00:06:07.130
di rendere clienti e

00:06:07.130 --> 00:06:09.530
i tuoi utenti davvero felici
con le tue app per dispositivi mobili.

00:06:09.530 --> 00:06:11.360
Se non li provassi,

00:06:11.360 --> 00:06:12.890
c'è un sottoinsieme minimo di

00:06:12.890 --> 00:06:15.890
10 per cento che non sono sempre
il miglior aspetto visivo di

00:06:15.890 --> 00:06:17.600
la tua app solo perché
non l'hai mai testato su

00:06:17.600 --> 00:06:20.900
che un telefono obsoleto
che qualcuno sta usando.

00:06:20.900 --> 00:06:22.985
Ecco come si può
sfruttare i test U(I)

00:06:22.985 --> 00:06:24.680
e Centro App e
assicurarsi che l'app

00:06:24.680 --> 00:06:26.390
sembra bello e corre davvero bene

00:06:26.390 --> 00:06:28.930
su tutte le diverse piattaforme
che stanno cercando di sostenere.

00:06:28.930 --> 00:06:34.940
Quindi la prossima cosa fantastica su
il modello di oggetto della pagina è,

00:06:34.940 --> 00:06:38.615
se hai scritto U(I) test
prima o se non l'hai fatto,

00:06:38.615 --> 00:06:41.645
questo è fondamentalmente ciò che un
semplice test U(I) si presenta come.

00:06:41.645 --> 00:06:43.100
Quindi avete, come ho detto,

00:06:43.100 --> 00:06:44.630
è molto simile a
il modello NUnit,

00:06:44.630 --> 00:06:47.415
che si deve impostare, e
avete il test vero e proprio,

00:06:47.415 --> 00:06:48.745
e nel test, se guardate,

00:06:48.745 --> 00:06:51.725
ha una linea molto lunga che dice:

00:06:51.725 --> 00:06:54.260
applicazione. Toccare, e poi si sta cercando di

00:06:54.260 --> 00:06:57.685
trovare un elemento su
lo schermo in base al relativo ID.

00:06:57.685 --> 00:07:01.190
La bellezza di usare
il modello di oggetto della pagina è,

00:07:01.190 --> 00:07:03.680
lo rende un po 'di più
generico nel senso che,

00:07:03.680 --> 00:07:05.705
ricordare quelle pagine
Stavo parlando di,

00:07:05.705 --> 00:07:09.370
diventa letteralmente
nella pagina di login,

00:07:09.890 --> 00:07:12.450
eseguire l'azione di accesso,

00:07:12.450 --> 00:07:14.480
e quindi utilizzare questo nome utente
e la password.

00:07:14.480 --> 00:07:17.210
Così rende più facile da leggere anche.

00:07:17.210 --> 00:07:19.520
Quindi, di nuovo, se qualcuno che è
non fatto test prima,

00:07:19.520 --> 00:07:21.080
non è proprio, "Oh,

00:07:21.080 --> 00:07:23.470
mio Dio, come farò a
scrivere un test C Sharp?

00:07:23.470 --> 00:07:25.275
Possono venire
ed essere come, "Oh,

00:07:25.275 --> 00:07:26.610
questo legge solo come l'inglese,

00:07:26.610 --> 00:07:27.915
non è così difficile da capire,

00:07:27.915 --> 00:07:29.940
So cosa sta succedendo in questo test.

00:07:29.940 --> 00:07:34.470
Così posso andare avanti
su e su così,

00:07:34.470 --> 00:07:36.325
ma questo non è divertente.

00:07:36.325 --> 00:07:39.305
Quello che farò adesso è,

00:07:39.305 --> 00:07:41.420
Ho intenzione di passare sopra e in realtà

00:07:41.420 --> 00:07:43.820
scrivere un test del pulsante oggetto pagina
per voi in questo momento,

00:07:43.820 --> 00:07:47.100
perché chi non
come alcuni codifica dal vivo?

00:07:47.930 --> 00:07:52.590
Così, mentre ho questa cosa istituito.

00:07:52.590 --> 00:07:55.760
Quindi questo è diventato un
hobby lato della mia.

00:07:55.760 --> 00:07:59.815
Quindi questa è un'applicazione che
il mio buon amico James Clancy,

00:07:59.815 --> 00:08:03.660
se vi ricordate di lui da
Xamarin evolvere 2016,

00:08:03.660 --> 00:08:06.170
ha dato il mio discorso preferito
su Async await,

00:08:06.170 --> 00:08:08.210
sicuramente incassato
video su YouTube.

00:08:08.210 --> 00:08:11.490
Ma così, è stato
lavorando sul suo gmusic,

00:08:11.490 --> 00:08:14.870
qualche prestito di Google Music e lui è
stato riscrivere il suo Google,

00:08:14.870 --> 00:08:16.730
quindi era originariamente solo per iOS,

00:08:16.730 --> 00:08:18.430
lo ha riscritto per le aziende,

00:08:18.430 --> 00:08:20.640
ed è un open source
progetto lo insegna

00:08:20.640 --> 00:08:23.700
ogni mercoledì, si
dovrebbe solo dargli un'occhiata.

00:08:23.700 --> 00:08:26.150
Ho notato che ha scritto

00:08:26.150 --> 00:08:27.840
tutto questo grid Xamarin Forms punteggio,

00:08:27.840 --> 00:08:29.985
ma indovinate un po', non ha fatto,

00:08:29.985 --> 00:08:32.120
Test dell'interfaccia utente, in qualsiasi caso.

00:08:32.120 --> 00:08:36.995
Quindi, come il mio contributo a
la comunità open source,

00:08:36.995 --> 00:08:39.410
ora scriveremo l'interfaccia utente
test per Clancy,

00:08:39.410 --> 00:08:42.990
e Clancy se sei
guardando, sei il benvenuto.

00:08:43.490 --> 00:08:48.370
Quindi, prima di iniziare,

00:08:48.860 --> 00:08:51.495
così ancora una volta, questo è consigli e trucchi,

00:08:51.495 --> 00:08:53.030
quindi ho intenzione di dare
consigli e trucchi.

00:08:53.030 --> 00:08:56.630
Suggerimento numero 1, vorrei sempre
suggeriscono test su dispositivi reali.

00:08:56.630 --> 00:08:58.340
Così si può vedere a destra
ora, ma su questo tavolo,

00:08:58.340 --> 00:09:01.290
In realtà ho un'icona su
un dispositivo iOS collegato,

00:09:01.290 --> 00:09:03.305
e sto riflettendo sullo schermo
per voi in questo momento.

00:09:03.305 --> 00:09:05.850
Quindi questo è ciò che l'applicazione
sembra che in questo momento,

00:09:05.850 --> 00:09:07.380
quindi se entri,

00:09:07.380 --> 00:09:08.850
vedrete un elenco di canzoni,

00:09:08.850 --> 00:09:10.905
si può scivolare verso l'alto,

00:09:10.905 --> 00:09:15.450
e si può vedere questo bello
poco ora schermo di riproduzione.

00:09:15.450 --> 00:09:17.295
Questo è quanto ha,

00:09:17.295 --> 00:09:18.990
e se scorri di lato,

00:09:18.990 --> 00:09:21.195
guardare a questa bella
gradiente che ha,

00:09:21.195 --> 00:09:24.015
e si può guardare il
menu di navigazione laterale.

00:09:24.015 --> 00:09:26.285
ok. Quindi questo è quanto ha,

00:09:26.285 --> 00:09:29.325
quindi prendiamo un po' di U(I)
test scritti per questo.

00:09:29.325 --> 00:09:33.745
Quindi, dal momento che si può solo
vedere il mio dispositivo iOS qui,

00:09:33.745 --> 00:09:35.665
ora ho intenzione di iniziare con iOS.

00:09:35.665 --> 00:09:38.960
Questo è il progetto di test U(I) che
vedete a sinistra qui,

00:09:38.960 --> 00:09:42.850
questo è letteralmente quello che
quando faccio clic con il pulsante destro del mouse,

00:09:42.850 --> 00:09:49.120
"Aggiungi", "Nuovo progetto" e scelgo
se la mia cosa viene fuori, ci siamo.

00:09:49.120 --> 00:09:50.955
Quindi, se scelgo un progetto di test U(I),

00:09:50.955 --> 00:09:54.260
questo è il modello vuoto
codice che si ottiene.

00:09:54.260 --> 00:09:55.910
Non ho fatto niente,

00:09:55.910 --> 00:09:58.505
questo è come è come si ottiene.

00:09:58.505 --> 00:10:00.135
Tutto quello che ho fatto è,

00:10:00.135 --> 00:10:01.605
nell'inizializzatore di app,

00:10:01.605 --> 00:10:05.190
Ho appena messo in una parte
dove l'APK per

00:10:05.190 --> 00:10:07.160
il dispositivo Android è costruito per

00:10:07.160 --> 00:10:09.730
e ho messo in sintesi sul mio dispositivo,

00:10:09.730 --> 00:10:12.275
Ho messo nell'ID del fascio
per l'app iOS.

00:10:12.275 --> 00:10:15.680
Ecco, questo è tutto ciò che serve
da fare per iniziare.

00:10:15.680 --> 00:10:19.330
Quindi, per essere sicuri che io
non ha rotto nulla,

00:10:19.330 --> 00:10:24.340
cerchiamo di ottenere l'applicazione in esecuzione
perché questo è il passo numero 1.

00:10:24.340 --> 00:10:26.795
Quindi cerchiamo di ottenere iOS,

00:10:26.795 --> 00:10:29.510
facciamo funzionare quel test,
in modo che il modello di oggetto della pagina.

00:10:29.510 --> 00:10:30.955
Il modo in cui funziona il modello è,

00:10:30.955 --> 00:10:34.070
si basa su quattro pagine principali.

00:10:34.070 --> 00:10:35.820
Se si dovesse andare a

00:10:35.820 --> 00:10:40.580
il nostro repository GitHub
dove abbiamo questo set up,

00:10:40.580 --> 00:10:42.140
c'è un campione lì dentro,

00:10:42.140 --> 00:10:43.610
abbiamo un wiki che

00:10:43.610 --> 00:10:46.190
ancora una volta passa attraverso tutto
di cui sto discutendo in questo momento.

00:10:46.190 --> 00:10:47.385
Quindi, se ti dimentichi,

00:10:47.385 --> 00:10:49.055
basta entrare e avere una lettura.

00:10:49.055 --> 00:10:51.165
Ma letteralmente, tutti gli U(I),

00:10:51.165 --> 00:10:53.179
tutte le pagine del modello
può essere incapsulato

00:10:53.179 --> 00:10:55.790
in queste quattro pagine che
Ho già detto laggiu'.

00:10:55.790 --> 00:10:58.465
Quel Manager, un apparecchio di prova di base,

00:10:58.465 --> 00:11:01.640
una pagina di base e una query sulla piattaforma.

00:11:05.330 --> 00:11:07.710
Oops, cosa ho fatto?

00:11:07.710 --> 00:11:10.060
Si è verificato un errore di test?

00:11:15.200 --> 00:11:17.385
Ok, ho intenzione di
come per Android,

00:11:17.385 --> 00:11:21.380
solo per un po' , e ottenere questo in esecuzione.

00:11:21.380 --> 00:11:24.960
I miei dispositivi si scollegano.

00:11:31.590 --> 00:11:37.630
Ce l'abbiamo fatta. Chi sta per
collegare questo backup. Va bene.

00:11:37.630 --> 00:11:41.605
Quindi abbiamo il nostro Repl sul lato,

00:11:41.605 --> 00:11:43.870
che useremo per interrogare per
gli elementi sullo schermo,

00:11:43.870 --> 00:11:45.745
abbiamo la mia app in primo piano.

00:11:45.745 --> 00:11:49.150
Ma prima di fare tutto ciò che andare
tornare al modello di oggetto della pagina.

00:11:49.150 --> 00:11:51.310
Quindi quelle quattro pagine base.

00:11:51.310 --> 00:11:53.830
Giorno per giorno, sono appena entrato e

00:11:53.830 --> 00:11:56.170
letteralmente basta andare "File Nuovo"
e copiare in quelle pagine.

00:11:56.170 --> 00:11:59.470
Ma se si voleva essere
super conveniente per voi,

00:11:59.470 --> 00:12:04.075
abbiamo un pacchetto NuGet
che è possibile importare in,

00:12:04.075 --> 00:12:05.800
e tutto ciò che fa è solo auto

00:12:05.800 --> 00:12:07.840
inietta quelle quattro pagine
che ho menzionato,

00:12:07.840 --> 00:12:11.845
BaseTest, BasePage,
PlatformQuery e AppManager.

00:12:11.845 --> 00:12:14.350
Aggiunge solo che in
automaticamente per voi.

00:12:14.350 --> 00:12:15.730
Quindi ho intenzione di farlo.

00:12:15.730 --> 00:12:17.530
Se notate, uno, due,

00:12:17.530 --> 00:12:20.260
tre, quattro; vengono aggiunte quattro pagine.

00:12:20.260 --> 00:12:22.030
Vediamo che cosa ognuno di loro guardare come

00:12:22.030 --> 00:12:24.040
un piccolo cose che abbiamo
per impostare lì.

00:12:24.040 --> 00:12:30.925
Così AppManager si trasformerà in
il nuovo AppInitializer.

00:12:30.925 --> 00:12:33.970
Tutti gli AppManager letteralmente
facendo è solo dicendo

00:12:33.970 --> 00:12:35.560
il quadro è qui che

00:12:35.560 --> 00:12:38.305
l'applicazione Android è e questo
è dove si trova l'app iOS.

00:12:38.305 --> 00:12:40.840
Dal momento che ho già impostato
in questo codice qui,

00:12:40.840 --> 00:12:44.680
Sto solo andando a copiare la parte
perché non voglio digitare questo

00:12:44.680 --> 00:12:48.820
fuori di nuovo, con questo qui.

00:12:48.820 --> 00:12:51.340
Quindi, se si stava facendo
questo, un altro consiglio,

00:12:51.340 --> 00:12:53.770
sia su Windows che su Mac,

00:12:53.770 --> 00:12:56.035
è possibile fare clic con il pulsante destro del mouse qui
e aggiungere un progetto di app.

00:12:56.035 --> 00:12:57.985
Questo si collegherà nelle soluzioni,

00:12:57.985 --> 00:12:59.380
se stai facendo un app Xamarin,

00:12:59.380 --> 00:13:02.530
e hai la tua soluzione
con UITest affiancato.

00:13:02.530 --> 00:13:05.365
È possibile collegarli a
lavorare l'uno con l'altro.

00:13:05.365 --> 00:13:11.410
Di solito evito di farlo
soprattutto perché a volte può

00:13:11.410 --> 00:13:13.810
prendere qualche minuto se è

00:13:13.810 --> 00:13:17.800
una app davvero grande per avviare
perché ricostruirrà l'app,

00:13:17.800 --> 00:13:21.370
distribuirlo sul dispositivo e
quindi avviare il test per voi.

00:13:21.370 --> 00:13:23.635
Mi piace un tempo di consegna più veloce,

00:13:23.635 --> 00:13:25.420
così io di solito faccio solo

00:13:25.420 --> 00:13:27.250
verificare che le applicazioni già
installato sul dispositivo,

00:13:27.250 --> 00:13:28.420
e poi comincio a scrivere test.

00:13:28.420 --> 00:13:33.500
Questo è piccolo consiglio fresco, che
può aiutarti a volte.

00:13:33.840 --> 00:13:36.730
Fammi venire qui. Va bene.

00:13:36.730 --> 00:13:40.810
Quindi tutto quello che ho fatto in questo è di nuovo
basta mettere nel percorso dove

00:13:40.810 --> 00:13:45.595
l'APK e l'aPK installato
mobile ID per la mia app.

00:13:45.595 --> 00:13:47.980
Ora posso sbarazzarmi di AppInitializer,

00:13:47.980 --> 00:13:49.705
Non ne ho più bisogno.

00:13:49.705 --> 00:13:53.350
Quindi eliminiamo. Prossimo passo.

00:13:53.350 --> 00:13:55.585
AppInitializer è stato fatto.

00:13:55.585 --> 00:13:59.335
Dobbiamo ora entrare e cerchiamo di
dare un'occhiata al BasePage.

00:13:59.335 --> 00:14:00.640
Così BasePage.

00:14:00.640 --> 00:14:02.650
Quindi ogni pagina che ho
stava parlando,

00:14:02.650 --> 00:14:03.850
come ogni classe è una pagina,

00:14:03.850 --> 00:14:05.605
così ogni pagina sta andando
per ereditare questo.

00:14:05.605 --> 00:14:07.390
Tutto questo sta facendo è che ti fornisce

00:14:07.390 --> 00:14:09.685
con un su Android e su iOS.

00:14:09.685 --> 00:14:11.980
Quindi questo è come si può fare
che la divisione multipiattaforma

00:14:11.980 --> 00:14:13.810
di cui parlavo.

00:14:13.810 --> 00:14:16.390
Un'altra cosa interessante che
BasePage fa per

00:14:16.390 --> 00:14:18.715
è che prende uno screenshot gratuito.

00:14:18.715 --> 00:14:21.295
Quindi, se si vuole eseguire
questi test su App Center,

00:14:21.295 --> 00:14:23.830
di solito è che non si dispone di
screenshot nel test,

00:14:23.830 --> 00:14:25.030
se si carica un test,

00:14:25.030 --> 00:14:26.860
non hai intenzione di ottenere
un buon risultato del test.

00:14:26.860 --> 00:14:28.330
Per rendere la vita facile per te,

00:14:28.330 --> 00:14:30.610
abbiamo un AssertOnPage.

00:14:30.610 --> 00:14:33.250
È gratis. Lo fa
automaticamente su ogni pagina.

00:14:33.250 --> 00:14:35.290
Quindi, su ogni pagina che
eredita un BasePage,

00:14:35.290 --> 00:14:37.600
è automaticamente
verificherò: "Ehi,

00:14:37.600 --> 00:14:40.434
è questo sulla pagina che mi aspetto?

00:14:40.434 --> 00:14:42.820
Ora, vi staresti chiedendo come
sarebbe il sistema sapere o

00:14:42.820 --> 00:14:45.190
come stiamo verificando è
sulla pagina che deve essere.

00:14:45.190 --> 00:14:47.200
Questo è ciò che questa magia
piccola cosa e

00:14:47.200 --> 00:14:49.780
il quarto file chiamato PlatformQuery.

00:14:49.780 --> 00:14:52.660
Quindi questo è ciò che usiamo in

00:14:52.660 --> 00:14:54.010
questo modello per assicurarsi che sei

00:14:54.010 --> 00:14:55.840
nella pagina che ci si aspetta di essere.

00:14:55.840 --> 00:14:58.315
Ad esempio, se sei
su una pagina di login,

00:14:58.315 --> 00:15:01.060
molto probabilmente alcune persone
di solito hanno la Parola

00:15:01.060 --> 00:15:03.700
login o come l'accesso su quella pagina,

00:15:03.700 --> 00:15:05.440
si può solo usare che
come vassoio della piattaforma

00:15:05.440 --> 00:15:07.180
per assicurarsi che si è
nella pagina sono previsti,

00:15:07.180 --> 00:15:09.100
Quindi solo qualcosa
unico per quella pagina.

00:15:09.100 --> 00:15:10.870
In modo che tu lo sappia per certo, ok,

00:15:10.870 --> 00:15:12.490
Sono sulla pagina sono
dovrebbe essere e io

00:15:12.490 --> 00:15:14.665
possibile eseguire le azioni su quella pagina.

00:15:14.665 --> 00:15:17.455
La parte bella è una volta che
verifica che tu sia su quella pagina,

00:15:17.455 --> 00:15:18.850
ci vuole uno screenshot gratuito per voi.

00:15:18.850 --> 00:15:21.325
Quindi è come in questa pagina.

00:15:21.325 --> 00:15:24.415
Va bene. Quindi questo è
cosa fa BasePage.

00:15:24.415 --> 00:15:29.575
BaseTestFixtures sono ogni test
sta per ereditare questo.

00:15:29.575 --> 00:15:32.050
Stesso processo. Quindi sono
fornendo quelli su

00:15:32.050 --> 00:15:34.870
iOS e sui valori Android qui.

00:15:34.870 --> 00:15:37.870
Ancora una volta, a volte ci sono
alcuni difetti nell'applicazione che possono

00:15:37.870 --> 00:15:41.620
po 'di default
tra iOS e Android.

00:15:41.620 --> 00:15:43.780
Quindi, all'interno dei vostri test, si
può avere una rottura e

00:15:43.780 --> 00:15:46.870
il difetto utilizzando questi valori.

00:15:46.870 --> 00:15:50.035
Letteralmente, tutto quello che fa è afferrare

00:15:50.035 --> 00:15:52.735
il valore da AppManager
e avvia l'applicazione per voi.

00:15:52.735 --> 00:15:54.580
Questo è tutto. E 'super semplice,

00:15:54.580 --> 00:15:57.860
niente di troppo complicato, niente
troppo fantasia accadendo qui.

00:15:57.870 --> 00:16:02.140
L'ultimo è il test stesso.

00:16:02.140 --> 00:16:06.160
Quindi questo è stato come il
test iniziale si presenta come,

00:16:06.160 --> 00:16:08.610
ma se avete notato
nel dispositivo di prova,

00:16:08.610 --> 00:16:11.580
stiamo già facendo come tutti
queste cose tagging in là.

00:16:11.580 --> 00:16:13.470
Così possiamo dimagrire l'intero test,

00:16:13.470 --> 00:16:15.060
non ha bisogno di tutti questi valori.

00:16:15.060 --> 00:16:21.220
Che cosa inizierà a cercare
come se qualcosa di simile.

00:16:21.220 --> 00:16:26.365
Quindi il tuo test sarà letteralmente
semplicemente ereditare BaseTestFixture.

00:16:26.365 --> 00:16:27.970
Ancora una volta, stiamo passando nella piattaforma,

00:16:27.970 --> 00:16:30.775
quindi sa su quale piattaforma correre.

00:16:30.775 --> 00:16:34.450
Così il Repl essere il
ciclo eval di sola lettura,

00:16:34.450 --> 00:16:36.685
che ha portato a interrogare per
elementi sullo schermo.

00:16:36.685 --> 00:16:38.935
Così si può avere un test
che solo lancia che,

00:16:38.935 --> 00:16:40.960
e poi ho un altro test
già scritto in

00:16:40.960 --> 00:16:44.155
qui che va nella homepage,

00:16:44.155 --> 00:16:46.750
come sulla homepage che
le applicazioni sono accese in questo momento.

00:16:46.750 --> 00:16:48.355
Fammi tirare di nuovo l'app.

00:16:48.355 --> 00:16:52.690
Si scorrerà e sarà
nella scheda Impostazioni.

00:16:52.690 --> 00:16:57.490
Così semplice test solo per assicurarsi
Non ho incasinato niente.

00:16:57.490 --> 00:16:58.765
Quindi il test è lì.

00:16:58.765 --> 00:17:02.470
Diamo un'occhiata a ciò che
una pagina completata.

00:17:02.470 --> 00:17:04.495
Scriveremo
questa pagina, quindi non preoccuparti.

00:17:04.495 --> 00:17:08.540
Quindi, a piedi attraverso cosa aspettarsi.

00:17:09.060 --> 00:17:12.745
Quindi questo è ciò che una pagina assomiglia.

00:17:12.745 --> 00:17:16.150
Alcuni consigli qui. Cosa aliena

00:17:16.150 --> 00:17:19.855
la query di Word rende
vita molto più bello.

00:17:19.855 --> 00:17:24.145
Così, quando si sta impostando
i diversi pulsanti sullo schermo,

00:17:24.145 --> 00:17:25.930
si può semplicemente fare query,

00:17:25.930 --> 00:17:28.450
o si può anche farlo
in un piccolo funk fantasia.

00:17:28.450 --> 00:17:30.190
Ecco, questo è un piccolo suggerimento fresco per avere.

00:17:30.190 --> 00:17:31.780
Quindi non abbiamo questi
sullo schermo.

00:17:31.780 --> 00:17:33.385
Ho intenzione di commentare
questo fuori per ora.

00:17:33.385 --> 00:17:36.820
La prossima cosa che noterete
è che eredita alcuni BasePage.

00:17:36.820 --> 00:17:39.820
Quindi, se dovessi rimuovere questo via,

00:17:39.820 --> 00:17:41.860
il sistema
automaticamente essere come,

00:17:41.860 --> 00:17:43.135
no, c'è qualcosa che non va.

00:17:43.135 --> 00:17:46.270
Non ti lascerò fare questo.
perché è necessario implementare

00:17:46.270 --> 00:17:49.960
le implementazioni delle query della piattaforma.

00:17:49.960 --> 00:17:52.810
Perché, come ho detto, è
ciò che guida il sistema,

00:17:52.810 --> 00:18:00.520
è ciò che fondamentalmente che aiuta
il sistema capisce il dispiacere,

00:18:00.520 --> 00:18:02.635
che va bene, questo è il
la pagina che dovrei essere,

00:18:02.635 --> 00:18:05.275
e ora posso eseguire
le azioni su di esso.

00:18:05.275 --> 00:18:11.320
Quindi la homepage, che è letteralmente
questa pagina su cui atterra,

00:18:11.320 --> 00:18:15.730
controlla, quindi per iOS,

00:18:15.730 --> 00:18:17.890
è il testo per questo pulsante.

00:18:17.890 --> 00:18:19.690
Non ho un iOS aperto, vero?

00:18:19.690 --> 00:18:21.910
Controlla questo pulsante
che dice gMusic.

00:18:21.910 --> 00:18:25.420
Ma se noterete, c'è
nessuna attività di aggiunta di menu in Android.

00:18:25.420 --> 00:18:28.960
Quindi cerchiamo di scoprire che cosa il commercio
potrebbe essere per Android.

00:18:28.960 --> 00:18:31.525
Fammi arrivare, dov'è il mio Repl,

00:18:31.525 --> 00:18:33.970
non il mio terminale andare via.

00:18:33.970 --> 00:18:39.080
Quindi vediamo cosa
sono in corso qui.

00:18:40.140 --> 00:18:43.780
In questo gigantesco flusso di cose,

00:18:43.780 --> 00:18:45.625
questo può essere un po 'opprimente.

00:18:45.625 --> 00:18:47.125
Se stai scrivendo l'interfaccia utente
test per la prima volta,

00:18:47.125 --> 00:18:48.340
Conosco un sacco di persone che non

00:18:48.340 --> 00:18:49.930
come guardare lo stupro
e non ti biasimo,

00:18:49.930 --> 00:18:51.670
questa è un'informazione Cortana.

00:18:51.670 --> 00:18:54.940
Ancora una volta, pochi consigli e trucchi
solo per rendere la vita più facile.

00:18:54.940 --> 00:18:58.765
Cose tra parentesi quadre
sono di solito classi.

00:18:58.765 --> 00:19:01.750
Se si esegue una query per una classe
e si cerca di capire,

00:19:01.750 --> 00:19:04.660
se riesco a trovare un ID per
una pagina o un elemento,

00:19:04.660 --> 00:19:07.480
Posso usare la classe, questo
è quello che si desidera utilizzare.

00:19:07.480 --> 00:19:09.310
Quello che farò è,

00:19:09.310 --> 00:19:12.295
In realtà sono andato in e ha aggiunto
un paio di- d'automazione,

00:19:12.295 --> 00:19:15.010
e vedo che ora c'è
pagina di gioco e non c'è

00:19:15.010 --> 00:19:17.800
un mini giocatore che è
questa cosa in fondo,

00:19:17.800 --> 00:19:19.900
quindi ho intenzione di utilizzare
che come il tratto.

00:19:19.900 --> 00:19:21.940
Andiamo qui e sostituiamolo,

00:19:21.940 --> 00:19:23.635
quindi abbiamo un mini giocatore.

00:19:23.635 --> 00:19:26.530
Così la homepage sembra buono
abbastanza per me, va bene.

00:19:26.530 --> 00:19:28.990
Non ho intenzione di mettere qualsiasi metodo
nella home page in questo momento solo

00:19:28.990 --> 00:19:31.480
perché non stiamo facendo
qualsiasi azione sulla homepage ancora,

00:19:31.480 --> 00:19:34.885
tutto quello che stiamo facendo è strisciare
in quel menu laterale.

00:19:34.885 --> 00:19:39.145
Ho intenzione di tornare in
la pagina di base per un po' ,

00:19:39.145 --> 00:19:41.980
perché non c'è
fresco funky piccola cosa

00:19:41.980 --> 00:19:44.065
Ho qui che sono
andando a copiare sopra.

00:19:44.065 --> 00:19:47.230
Quello che sta succedendo è,

00:19:47.230 --> 00:19:49.585
la pagina di base è super potente.

00:19:49.585 --> 00:19:51.940
Una delle cose interessanti che ho
vuole sottolineare qui è,

00:19:51.940 --> 00:19:55.750
se si guarda al come questa applicazione
funziona, fammi mettere questo,

00:19:55.750 --> 00:19:58.390
quindi sei nelle canzoni che in questo momento,

00:19:58.390 --> 00:20:00.160
è possibile passare agli artisti.

00:20:00.160 --> 00:20:03.835
Anche in questo caso, il menu laterale è ancora
accessibili dalla stessa pagina.

00:20:03.835 --> 00:20:06.010
Se vado in generi,

00:20:06.010 --> 00:20:08.245
anche in questo caso il menu laterale è accessibile,

00:20:08.245 --> 00:20:09.940
e adoro il lato ospite,
e nessuno ha

00:20:09.940 --> 00:20:12.055
ha reagito al mio gusto trash nella musica,

00:20:12.055 --> 00:20:14.210
voi ragazzi sono i migliori.

00:20:14.760 --> 00:20:17.245
Il fatto è che questa è una pagina condivisa

00:20:17.245 --> 00:20:18.880
è come una funzionalità condivisa,

00:20:18.880 --> 00:20:20.800
quindi condividiamo il codice.

00:20:20.800 --> 00:20:24.670
Ho intenzione di mettere questo
nella mia pagina base,

00:20:24.670 --> 00:20:29.185
quindi tutto questo sta facendo è questo
è il metodo di menu Seleziona,

00:20:29.185 --> 00:20:31.090
che sta per fare
l'azione di apertura

00:20:31.090 --> 00:20:33.250
menu e selezionare una voce di menu.

00:20:33.250 --> 00:20:35.845
Ho intenzione di mettere questo nella pagina di base
perché sembra

00:20:35.845 --> 00:20:39.460
ogni singola pagina in questa applicazione
ha accesso a questa pagina di base.

00:20:39.460 --> 00:20:41.470
E 'intenzione di fare
la mia vita è più facile farlo.

00:20:41.470 --> 00:20:45.775
Un altro trucco interessante è il ritorno
valori di questi metodi.

00:20:45.775 --> 00:20:47.635
Se restituisci la pagina su cui ti trovi,

00:20:47.635 --> 00:20:49.450
è possibile continuare a stringere sui metodi

00:20:49.450 --> 00:20:51.895
solo rende il vostro test
guardare molto più bello.

00:20:51.895 --> 00:20:54.865
Cosa consigliamo con
il modello di oggetto della pagina è,

00:20:54.865 --> 00:20:58.825
se si tratta di un metodo che non
navigare fuori da quella pagina,

00:20:58.825 --> 00:21:00.610
fare in modo che il tipo restituito digiti la pagina stessa.

00:21:00.610 --> 00:21:01.990
Perché questo significa
si sta andando a continuare

00:21:01.990 --> 00:21:03.400
facendo più azioni su quella pagina,

00:21:03.400 --> 00:21:06.490
non si vuole nuovo su una pagina
quando si sta scrivendo il test.

00:21:06.490 --> 00:21:08.560
Ma se stai navigando
lontano dalla pagina,

00:21:08.560 --> 00:21:10.210
significa che c'è
sarà una nuova pagina

00:21:10.210 --> 00:21:12.580
accadendo dopo questo metodo
è fatto comunque,

00:21:12.580 --> 00:21:16.615
in modo che è quando si vuole fare
largo. Questo è un altro consiglio figo.

00:21:16.615 --> 00:21:22.420
Non ho il mio alias di utilizzo in
qui quindi fammi tirare che sopra,

00:21:22.420 --> 00:21:26.000
si desidera utilizzare alcuni funks e wow.

00:21:26.790 --> 00:21:31.900
Ok, questo sembra felice
questo sembra buono.

00:21:31.900 --> 00:21:33.760
Ho una cosa simile che fa

00:21:33.760 --> 00:21:38.185
l'azione di trascinamento dal basso
per aprire la vista ora semplice.

00:21:38.185 --> 00:21:40.495
Anche in questo caso, si tratta di un'azione condivisa
qualunque pagina tu sia

00:21:40.495 --> 00:21:42.790
su di voi dovrebbe essere in grado di
fare di nuovo queste azioni,

00:21:42.790 --> 00:21:44.770
L'ho messo nella mia pagina base.

00:21:44.770 --> 00:21:46.900
Inizierai a notare
cose come siamo

00:21:46.900 --> 00:21:48.490
facendo tutti questi
principi che faresti

00:21:48.490 --> 00:21:50.080
quando si sta scrivendo un app non

00:21:50.080 --> 00:21:52.120
necessariamente quando
stai scrivendo un test.

00:21:52.120 --> 00:21:54.910
Il momento clou della
tutto questo è che,

00:21:54.910 --> 00:21:57.040
scrivere test è come scrivere un'app.

00:21:57.040 --> 00:21:58.570
Voglio dire, se sei intelligente,

00:21:58.570 --> 00:22:00.175
e si può andare suite di prova robusto,

00:22:00.175 --> 00:22:01.480
rende solo la scrittura

00:22:01.480 --> 00:22:04.310
i test e la manutenzione
loro molto più bello.

00:22:04.380 --> 00:22:06.805
Cool, così basato sull'abitudine,

00:22:06.805 --> 00:22:08.455
Ho la mia home page impostata.

00:22:08.455 --> 00:22:10.390
Abbiamo il nostro test in corso,

00:22:10.390 --> 00:22:11.440
quindi ho intenzione di commentare

00:22:11.440 --> 00:22:14.530
questo vecchio file di prova perché
non ne abbiamo più bisogno,

00:22:14.530 --> 00:22:18.085
e questa è la nostra cosa delle impostazioni.

00:22:18.085 --> 00:22:23.230
Un altro suggerimento fresco, è tutto
attraverso Nunit.

00:22:23.230 --> 00:22:25.390
Sì, se tu sosteni Nunit 3 adesso,

00:22:25.390 --> 00:22:30.170
in modo da poter utilizzare Nunit 3 con UI test.

00:22:30.960 --> 00:22:34.600
Evidenziare e utilizzare ogni singola potenza
che Nunit fornisce.

00:22:34.600 --> 00:22:38.690
Utilizzare i test case e
conoscere ottimizzare le scrivanie.

00:22:39.900 --> 00:22:43.075
È come se avessi
tutto questo potere lì,

00:22:43.075 --> 00:22:44.560
non dimenticate che
anche se questo ha

00:22:44.560 --> 00:22:46.300
Il test dell'interfaccia utente di Xamarin è in esecuzione su Nunits,

00:22:46.300 --> 00:22:48.610
hai tutte le funzionalità Nunit
a vostra disposizione.

00:22:48.610 --> 00:22:50.965
Così si può affermare, si
può utilizzare test case,

00:22:50.965 --> 00:22:52.615
è possibile utilizzare ignora,

00:22:52.615 --> 00:22:56.410
è anche possibile utilizzare
la mia categoria cosa preferita.

00:22:56.410 --> 00:22:59.590
La mia cosa preferita per
fare con la categoria è quello di

00:22:59.590 --> 00:23:02.275
impostare i test con smoke test,

00:23:02.275 --> 00:23:04.825
test notturni, test di sviluppo.

00:23:04.825 --> 00:23:08.665
Se si dispone della configurazione CI/CD
con i test dell'interfaccia utente in esso,

00:23:08.665 --> 00:23:10.690
classificare i test,
quindi non stai correndo

00:23:10.690 --> 00:23:12.625
l'intero gruppo di test ogni volta.

00:23:12.625 --> 00:23:16.465
Quindi, se è solo un controllo Dev BR
basta farlo eseguire su prove di fumo.

00:23:16.465 --> 00:23:18.490
Se è un grande quotidiano,

00:23:18.490 --> 00:23:19.840
fare un sottoinsieme di

00:23:19.840 --> 00:23:22.825
tutta la suite e chiamare che
la tua categoria giornaliera di test.

00:23:22.825 --> 00:23:24.640
Se si tratta di un'offerta Nike, è allora che

00:23:24.640 --> 00:23:26.830
raccomandare di fare come
l'intero test end-to-end,

00:23:26.830 --> 00:23:28.150
solo perché nessuno
lavorando su e si

00:23:28.150 --> 00:23:30.145
hanno tutti e tre i computer.

00:23:30.145 --> 00:23:36.410
Anche in questo caso, utilizzare la leva tutte le
roba che Nunit deve fornire.

00:23:36.540 --> 00:23:42.145
Ho intenzione di ricostruire il,

00:23:42.145 --> 00:23:43.540
oops, ho il mio stupro aperto,

00:23:43.540 --> 00:23:44.725
Non è vero? Sì lo faccio.

00:23:44.725 --> 00:23:47.380
Usciamo da questo,

00:23:47.380 --> 00:23:50.905
lo stupro è buono, sembra felice.

00:23:50.905 --> 00:23:58.930
Abbiamo impostato il test case per
pagina delle impostazioni e verificare che.

00:23:58.930 --> 00:24:03.010
Ora lo imposta in
il pannello di unit test,

00:24:03.010 --> 00:24:05.260
quindi ho intenzione di aprire
la pagina delle impostazioni,

00:24:05.260 --> 00:24:07.285
vediamo come si presenta.

00:24:07.285 --> 00:24:10.795
Tentare il numero due con iOS,
vediamo come va.

00:24:10.795 --> 00:24:14.300
No, non gli piace
il mio dispositivo iOS, perché?

00:24:16.920 --> 00:24:21.490
Oops, in piedi questo, uccidere l'applicazione.

00:24:21.490 --> 00:24:25.300
Ottenere questa applicazione di nuovo, pulito.

00:24:25.300 --> 00:24:35.155
Eccoci, andiamo,

00:24:35.155 --> 00:24:37.520
non modificarlo su di me.

00:24:37.800 --> 00:24:40.825
Rendi felici tutti gli dei demo.

00:24:40.825 --> 00:24:45.610
Mentre è in esecuzione, fammi vedere,

00:24:45.610 --> 00:24:48.670
Stavo per dire qualcosa che
solo, oh sì, è in esecuzione ora.

00:24:48.670 --> 00:24:54.710
Vediamo come va.
Si sta aprendo l'applicazione.

00:24:57.450 --> 00:25:01.990
No, non ha strisciato e
selezionare la voce di menu.

00:25:01.990 --> 00:25:04.550
Sono così triste ora, cerchiamo di
vedere cosa sta succedendo.

00:25:04.650 --> 00:25:08.840
Sito a destra a sinistra, abbiamo il menu.

00:25:13.650 --> 00:25:16.000
La prossima cosa che questo sarà
accadere, ma diciamo

00:25:16.000 --> 00:25:18.085
che stavo facendo su cerchiamo di debug test.

00:25:18.085 --> 00:25:20.260
Si è verificato un problema sconosciuto.

00:25:20.260 --> 00:25:22.210
quello che ho intenzione di fare è andare
per entrare nello stupro qui,

00:25:22.210 --> 00:25:24.010
e ho intenzione di verificare
perché il mio test non funziona

00:25:24.010 --> 00:25:25.870
perché onestamente
pensato che questo stava per

00:25:25.870 --> 00:25:30.530
lavorare come ne ho bisogno
funzionacome un articolo.

00:25:33.570 --> 00:25:36.985
Questo è il modo in cui il test completato,

00:25:36.985 --> 00:25:39.565
oh mio Dio, dovrei
ricordatevi di ucciderlo.

00:25:39.565 --> 00:25:44.290
Hai visto come l'aspetto completato

00:25:44.290 --> 00:25:46.090
del test si presenta come
e come fa un gruppo di

00:25:46.090 --> 00:25:48.550
il mio Go-Share e la condivisione dei metodi
che si può fare.

00:25:48.550 --> 00:25:53.080
Come faresti a iniziare
scrivere un nuovo test,

00:25:53.080 --> 00:25:55.435
quindi forse convertire i test
che hai già.

00:25:55.435 --> 00:25:57.130
Passo numero uno sarebbe letteralmente

00:25:57.130 --> 00:25:58.885
quello che ho appena fatto,
aggiungendo nel test dell'interfaccia utente,

00:25:58.885 --> 00:26:01.405
è possibile utilizzare il pacchetto pop
o si può andare in

00:26:01.405 --> 00:26:05.690
GitHub e copiare manualmente
quelle pagine quello che ti piace.

00:26:06.240 --> 00:26:10.180
La seconda cosa è
Come ho detto che entri,

00:26:10.180 --> 00:26:11.500
modificare il file di gestione app,

00:26:11.500 --> 00:26:14.260
eliminare tutto l'inizializzatore di app
file, hai fatto tutto questo.

00:26:14.260 --> 00:26:17.050
Tu entri e poi

00:26:17.050 --> 00:26:19.795
il passo successivo letteralmente solo è
per iniziare a creare le pagine.

00:26:19.795 --> 00:26:22.150
Avevo già creato la homepage
con il commercio lì dentro,

00:26:22.150 --> 00:26:23.560
ma questo è letteralmente il passo successivo.

00:26:23.560 --> 00:26:25.120
Il buy-in iniziale può essere un

00:26:25.120 --> 00:26:26.920
po 'costoso perché
ci vuole un po 'di

00:26:26.920 --> 00:26:30.490
tempo a seconda di quante pagine
e quanto è avanzata la tua app.

00:26:30.490 --> 00:26:31.870
Ma la parte bella è,

00:26:31.870 --> 00:26:33.460
si può effettivamente dividere questo lavoro

00:26:33.460 --> 00:26:35.200
perché è indipendente
su chi ci sta lavorando.

00:26:35.200 --> 00:26:36.715
Perché tutti quelli che sono su quella pagina,

00:26:36.715 --> 00:26:38.110
in modo da poter dividere il lavoro di

00:26:38.110 --> 00:26:39.640
scrivere ogni pagina
tra cinque persone,

00:26:39.640 --> 00:26:41.005
tutti scrivono una pagina,

00:26:41.005 --> 00:26:43.810
e questo è tutto, avete in
l'installazione iniziale eseguita.

00:26:43.810 --> 00:26:47.800
Perché una volta che le pagine sono in questo è
tutto ciò che richiede più tempo,

00:26:47.800 --> 00:26:50.365
poi basta cucinare
i metodi per scrivere i test,

00:26:50.365 --> 00:26:52.645
super-semplice, è
molto semplice.

00:26:52.645 --> 00:27:00.500
Ora, vediamo perché il mio colpo
da destra a sinistra non stava scorrendo.

00:27:03.750 --> 00:27:07.840
Quindi il mio codice è un altro modo?

00:27:07.840 --> 00:27:11.170
Il mio codice è giusto per
Sinistra, va bene vediamo.

00:27:11.170 --> 00:27:14.090
Ho aperto lo stupro, verifichiamo.

00:27:14.100 --> 00:27:18.730
Se va da destra a sinistra
non sta facendo niente di strano.

00:27:18.730 --> 00:27:20.740
Ok, andiamo da sinistra a destra.
Penso che voi ragazzi abbiate ragione.

00:27:20.740 --> 00:27:27.400
Penso che si suppone
per scorrere da sinistra a destra.

00:27:28.380 --> 00:27:31.615
Ecco qua, bel trucco. Grazie.

00:27:31.615 --> 00:27:35.470
La gioia il voto su di esso e nessuno
di voi state dormendo, questo è buono.

00:27:35.470 --> 00:27:37.090
Odio fare sessioni
dopo pranzo perché

00:27:37.090 --> 00:27:39.860
Sono sempre sicuro che
tutti sono mezzo addormentato.

00:27:41.010 --> 00:27:44.065
L'altra cosa che ho fatto
qui è stato ho iniziato a mettere

00:27:44.065 --> 00:27:46.330
un campione di come una funzione
apparirebilò come,

00:27:46.330 --> 00:27:48.790
ma io stesso ho troppo complicato le cose.

00:27:48.790 --> 00:27:50.500
Questo è letteralmente solo fare

00:27:50.500 --> 00:27:53.570
una corrispondenza di query di stringa
a quello che c'è qui dentro.

00:27:53.790 --> 00:27:56.890
Un'altra cosa che mi piace
di solito fare è da quando ho

00:27:56.890 --> 00:27:59.380
ha detto che la configurazione iniziale
sono solo le pagine,

00:27:59.380 --> 00:28:01.900
e il modo più veloce
per trovare elementi su

00:28:01.900 --> 00:28:05.190
una pagina App.flash tutto,

00:28:05.190 --> 00:28:07.695
è la mia cosa preferita qui dentro.

00:28:07.695 --> 00:28:11.470
Dato che volevo solo toccare
su quel pulsante Impostazioni,

00:28:12.050 --> 00:28:15.215
se solo aggiungo. Impostazioni flash,

00:28:15.215 --> 00:28:18.160
Posso solo capire- è
ha due pulsanti di impostazione,

00:28:18.160 --> 00:28:21.920
Devo solo farcela, fallo.

00:28:22.830 --> 00:28:25.705
Questa è la mia esatta impostazione
pulsante, questo è tutto.

00:28:25.705 --> 00:28:28.375
Se spendi solo un po' di
tempo e continuate a fare questo,

00:28:28.375 --> 00:28:30.775
rende l'impostazione di
queste pagine super veloce.

00:28:30.775 --> 00:28:33.160
Inoltre, la maggior parte dei casi se
tu sei quello che è

00:28:33.160 --> 00:28:35.440
scritto l'applicazione si sa
quale ID di automazione si

00:28:35.440 --> 00:28:37.465
allegati in Xamarin Forms o

00:28:37.465 --> 00:28:40.540
quale nome sull'accessibilità
ID fornito.

00:28:40.540 --> 00:28:42.700
Quindi molto probabilmente
conoscere già la query.

00:28:42.700 --> 00:28:44.260
Dovrebbe essere super veloce,

00:28:44.260 --> 00:28:47.245
e super intuitivo
una volta che si entra in esso.

00:28:47.245 --> 00:28:50.814
Vado a prenderlo,

00:28:50.814 --> 00:28:52.660
e ho intenzione di cambiare questo perché

00:28:52.660 --> 00:28:54.550
non ha bisogno di
essere così complicato.

00:28:54.550 --> 00:29:01.255
Questo può letteralmente essere solo una stringa
e può semplicemente vivere qui.

00:29:01.255 --> 00:29:03.830
Poi ho intenzione di utilizzare,

00:29:05.460 --> 00:29:07.690
Non l'ho tirato dentro oggi,

00:29:07.690 --> 00:29:09.800
No, è proprio qui, okay.

00:29:17.450 --> 00:29:24.105
No, non ce la fa,
Bene, ok, aspetta.

00:29:24.105 --> 00:29:26.830
Ho intenzione di fare un
po 'di fudging qui.

00:29:30.770 --> 00:29:35.320
Voglio mettersi in mostra
come scriverli.

00:29:37.520 --> 00:29:40.125
ok. Questo sembra buono.

00:29:40.125 --> 00:29:47.140
Cambiamo te, e
cambiamoti.

00:29:49.580 --> 00:29:53.010
Ho di nuovo bisogno della mia domanda.

00:29:53.010 --> 00:29:57.040
Quindi ho intenzione di tornare in
qui. Quindi questa era la domanda.

00:30:00.800 --> 00:30:03.060
Cosa mi serve qui?

00:30:03.060 --> 00:30:10.270
Quindi ho intenzione di solo
effettuare queste impostazioni.

00:30:16.040 --> 00:30:18.120
In realtà, non ne ho nemmeno

00:30:18.120 --> 00:30:20.400
bisogno che più, ora
che ci penso.

00:30:20.400 --> 00:30:23.205
Posso entrare e fare questo,

00:30:23.205 --> 00:30:29.580
gettare il mio controllo Lambda
proprio qui.

00:30:29.580 --> 00:30:33.900
Così fa di elemento questo,
"Tap" sull'elemento questo.

00:30:33.900 --> 00:30:36.420
ok. Quindi questo per ora,

00:30:36.420 --> 00:30:42.030
ci limiteremo ad aprire il menu delle impostazioni,

00:30:42.030 --> 00:30:44.265
solo perché non voglio
per sprecare il tempo di tutti,

00:30:44.265 --> 00:30:45.165
e ci stiamo avvicinando.

00:30:45.165 --> 00:30:49.455
Quindi cerchiamo di ottenere questo set up qui.

00:30:49.455 --> 00:30:52.660
Va bene, ottimo.

00:30:53.900 --> 00:30:56.290
Cosa c'è che non va?

00:31:02.450 --> 00:31:05.700
Così l'ho chiamato.

00:31:05.700 --> 00:31:09.510
"SelectMenuItem" ma non lo faccio
dare un valore in questo momento.

00:31:09.510 --> 00:31:12.490
ok. Facciamolo.

00:31:14.330 --> 00:31:17.100
È ancora in funzione?

00:31:17.100 --> 00:31:21.525
ok. Quindi ricordati sempre di uccidere
l'applicazione che mi dimentico di fare.

00:31:21.525 --> 00:31:24.090
Quindi cominciamo.

00:31:24.090 --> 00:31:31.680
Penso che questa sia la parte più lenta,

00:31:31.680 --> 00:31:33.165
solo in attesa di quel lancio.

00:31:33.165 --> 00:31:36.225
Ma a parte questo,
diventa super veloce.

00:31:36.225 --> 00:31:38.430
Quindi quello che stiamo per fare ora
molto rapidamente è che mi limiterò a

00:31:38.430 --> 00:31:40.470
mostra come impostare una pagina perché

00:31:40.470 --> 00:31:44.520
questo è di solito tutto ciò che si
bisogno di capire su ciò che è

00:31:44.520 --> 00:31:49.540
accade, e basta capire.

00:31:51.860 --> 00:31:55.965
Fammi indovinare, il mio indice
è zero non uno.

00:31:55.965 --> 00:31:58.200
Sì, il mio indice è zero non uno.

00:31:58.200 --> 00:32:03.580
ok. Dividiamoci.

00:32:04.160 --> 00:32:08.160
Ecco fatto. Quello che voglio
verificare che si tratti di una diapositiva uno, due.

00:32:08.160 --> 00:32:11.280
ok. Arriverà a questa pagina.

00:32:11.280 --> 00:32:13.905
Ma quello che stiamo andando a
in realtà scrivere il test per,

00:32:13.905 --> 00:32:16.290
Voglio testare per questo
schermo in riproduzione.

00:32:16.290 --> 00:32:22.150
Quindi proviamo questo.

00:32:23.030 --> 00:32:26.140
Entriamo qui.

00:32:32.330 --> 00:32:38.710
OpenNowPlaying e quando
aprire un Repl su quella pagina.

00:32:42.650 --> 00:32:46.515
ok. Così, mentre questo è il lancio,

00:32:46.515 --> 00:32:49.095
come inizieresti con una nuova pagina?

00:32:49.095 --> 00:32:54.120
"Aggiungi nuova pagina". Quindi cerchiamo di
chiamarlo il NowPlayingPage.

00:32:54.120 --> 00:32:57.270
Tutti bravi da imparare. questo
è quello che tutti farebbero.

00:32:57.270 --> 00:33:00.749
Il prossimo passo, stiamo andando a
ereditare da BasePage,

00:33:00.749 --> 00:33:02.010
ma poi sarà come, "No,

00:33:02.010 --> 00:33:03.435
è necessario avere la query della piattaforma."

00:33:03.435 --> 00:33:06.490
ok. Eseguire la query della piattaforma.

00:33:09.530 --> 00:33:13.560
Quindi è sulla mia pagina
ed è pronto per partire.

00:33:13.560 --> 00:33:17.310
Quindi possiamo rimettere questo qui,

00:33:17.310 --> 00:33:18.990
ottenere il font per questo.

00:33:18.990 --> 00:33:21.750
ok. Di solito quello che faccio è,

00:33:21.750 --> 00:33:25.980
Non ricordo mai come la piattaforma
tratto e roba sembra.

00:33:25.980 --> 00:33:30.645
Vado ad aprire in un campione o
basta andare in pagina già fatto.

00:33:30.645 --> 00:33:34.515
Decido di copiarlo
perché mi piace imbrogliare.

00:33:34.515 --> 00:33:39.030
Quindi, sotto questo comando
qui mettere questo qui.

00:33:39.030 --> 00:33:40.980
Va bene. Tutto quello che dovete
fare ora è entrare e solo

00:33:40.980 --> 00:33:43.395
modificare i valori dei tratti
per piattaforma.

00:33:43.395 --> 00:33:46.290
Quindi vediamo cosa
potrebbe essere per iOS.

00:33:46.290 --> 00:33:49.150
Quindi vediamo cosa abbiamo qui.

00:33:49.700 --> 00:33:53.745
Abbiamo un mucchio di schermi.

00:33:53.745 --> 00:33:55.890
Ma ho l'ID della pagina che dice

00:33:55.890 --> 00:33:58.050
NowPlayingPage che è promettente.

00:33:58.050 --> 00:33:59.310
Quindi ho intenzione di afferrare questo.

00:33:59.310 --> 00:34:03.490
Quindi, per iOS, ho intenzione di
mettere questo come un tratto di pagina.

00:34:06.250 --> 00:34:10.120
La smetti, sono qui.

00:34:10.120 --> 00:34:13.020
Ho intenzione di tirare su Android,

00:34:13.020 --> 00:34:18.510
e facciamo lo stesso
cosa per Android.

00:34:18.510 --> 00:34:21.855
Così impostazioni Android.

00:34:21.855 --> 00:34:25.120
Fammi fare questo test.

00:34:25.250 --> 00:34:27.890
Quindi la configurazione iniziale.

00:34:27.890 --> 00:34:30.320
Non sto facendo letteralmente
quello che farò se sto facendo

00:34:30.320 --> 00:34:32.960
questo da solo alla mia scrivania.

00:34:32.960 --> 00:34:34.430
Quindi il primo passo in cui entravo,

00:34:34.430 --> 00:34:35.690
lanciarlo un paio di volte,

00:34:35.690 --> 00:34:38.045
ottenere tutti i tratti della pagina fatto.

00:34:38.045 --> 00:34:40.900
Una volta che ho i valori del tratto della pagina,

00:34:40.900 --> 00:34:42.810
Ho bisogno di risolvere questo problema
per Android in modo chiaro,

00:34:42.810 --> 00:34:43.935
non sta strisciando verso l'alto a destra.

00:34:43.935 --> 00:34:48.405
Ma un albero qui dentro,

00:34:48.405 --> 00:34:51.850
vediamo cosa sta succedendo
in Android. Vediamo.

00:34:51.890 --> 00:34:55.830
Quindi c'è l'etichetta.
Perché torno su.

00:34:55.830 --> 00:35:00.330
ok. Quindi c'è MiniPlayer,
c'è CurrentSong, CurrentArtist.

00:35:00.330 --> 00:35:02.280
Vedo di nuovo una pagina di apertura.

00:35:02.280 --> 00:35:05.910
Quindi prendiamo in prestito
la stessa cosa per entrambi.

00:35:05.910 --> 00:35:09.180
Ora che è impostato,
possiamo iniziare a mettere in

00:35:09.180 --> 00:35:12.270
alcuni valori per gli elementi
su quello schermo.

00:35:12.270 --> 00:35:17.235
Quindi, ancora una volta tornare indietro, afferriamo
l'alias using per questo.

00:35:17.235 --> 00:35:20.265
NowPlayingPage, diamo
vieni qui. Va bene.

00:35:20.265 --> 00:35:23.370
Così il NowPlayingPage ha
un mucchio di bottoni che vedo.

00:35:23.370 --> 00:35:26.460
Quindi vediamo cosa sta succedendo qui.

00:35:26.460 --> 00:35:28.710
Quindi c'è il pulsante "Play",

00:35:28.710 --> 00:35:30.180
c'è l'alto e i pollici in su,

00:35:30.180 --> 00:35:33.180
pollici in giù, c'è
il "MiniPlayer".

00:35:33.180 --> 00:35:36.360
Quello che cercherò di tentare è,

00:35:36.360 --> 00:35:38.370
vediamo se è possibile ottenere
nel pulsante "Shuffle".

00:35:38.370 --> 00:35:40.650
Ecco, questo è questo pulsante qui.

00:35:40.650 --> 00:35:42.630
Quindi c'è mescolamento,
c'è il gioco di ripetizione.

00:35:42.630 --> 00:35:45.210
va bene. Ora, se si nota questo
è un altro problema che ho visto.

00:35:45.210 --> 00:35:48.075
Quindi non si può sempre avere
controllo sul codice sorgente,

00:35:48.075 --> 00:35:49.350
e non sempre si può
essere in grado di andare in

00:35:49.350 --> 00:35:50.640
e aggiungere gli HOd di automazione,

00:35:50.640 --> 00:35:53.055
o aggiungere nomi fisici per le cose.

00:35:53.055 --> 00:35:54.900
Quindi, per esempio, se guardo qui,

00:35:54.900 --> 00:35:58.125
tutto quello che riesco a vedere è
controllo delle griglie inferiori.

00:35:58.125 --> 00:36:02.280
Non ho nomi specifici
per uno qualsiasi di questi pulsanti essere.

00:36:02.280 --> 00:36:04.440
Penso che sia un controllo personalizzato
che lo sguardo viene utilizzato.

00:36:04.440 --> 00:36:07.510
Quindi non ho valori per questo.

00:36:07.610 --> 00:36:11.895
Il modo migliore per farlo è
basta continuare a perforare verso il basso.

00:36:11.895 --> 00:36:13.604
Quindi ho intenzione di,

00:36:13.604 --> 00:36:15.060
facciamo una domanda da qui.

00:36:15.060 --> 00:36:18.210
Quindi questo si chiama
controllo delle griglie inferiori.

00:36:18.210 --> 00:36:22.395
Quindi ho intenzione di guardare a quali sono
i bambini all'interno di esso prima.

00:36:22.395 --> 00:36:27.870
Credo di vedere uno, due, tre, quattro.

00:36:27.870 --> 00:36:29.400
No, c'è molto
di cose in là.

00:36:29.400 --> 00:36:31.320
ok. Facciamo lampeggiare questi perché sono

00:36:31.320 --> 00:36:34.150
Si è verificato un problema sconosciuto.
ci sono così tante cose.

00:36:37.950 --> 00:36:41.890
ok. Uno, due, tre, quattro, ok.

00:36:41.890 --> 00:36:45.235
Quindi, alla griglia inferiore è
tutta questa zona inferiore,

00:36:45.235 --> 00:36:46.990
Non mi serve tutta l'area di fondo.

00:36:46.990 --> 00:36:50.140
Quindi userò l'ultimo bambino,

00:36:50.140 --> 00:36:53.650
e vediamo cosa c'è
nel, ci andiamo.

00:36:53.650 --> 00:36:55.450
Ci stiamo avvicinando, giusto?

00:36:55.450 --> 00:37:00.780
Quindi non è sempre andare a
essere un caso felice in cui è possibile

00:37:00.780 --> 00:37:02.880
scrivere quegli SCRITTI perfetti
e si sa mantenere

00:37:02.880 --> 00:37:06.765
un perfetto set univoco di identificatori
per l'elemento sullo schermo.

00:37:06.765 --> 00:37:08.790
Non ne prenderei troppo.

00:37:08.790 --> 00:37:11.790
Avere qualsiasi cosa e
ottenere solo test di base

00:37:11.790 --> 00:37:13.470
andare è molto più importante di

00:37:13.470 --> 00:37:15.545
cercando di trovare ID univoci
per qualsiasi elemento.

00:37:15.545 --> 00:37:17.740
Quindi, finché il test non si rompe,

00:37:17.740 --> 00:37:20.530
è un po' fragile a questo punto
Sarei d'accordo, ma poi questo è

00:37:20.530 --> 00:37:23.470
quando si può prendere questo test e
mostrarlo al Team e dire come,

00:37:23.470 --> 00:37:25.315
"Ehi, questo è davvero utile."

00:37:25.315 --> 00:37:27.115
Iniziamo ad aggiungere,

00:37:27.115 --> 00:37:28.390
il fatto che questi stanno per essere

00:37:28.390 --> 00:37:29.770
testato e cerchiamo di essere più consapevoli,

00:37:29.770 --> 00:37:31.660
aggiungere altri nomi a
queste cose in futuro.

00:37:31.660 --> 00:37:33.280
Quindi entriamo.

00:37:33.280 --> 00:37:35.425
Penso che quello fosse il secondo bottone,

00:37:35.425 --> 00:37:38.020
sta andando a verificare. Yup. Questo è tutto.

00:37:38.020 --> 00:37:42.055
Quindi il passo successivo sarebbe letteralmente,

00:37:42.055 --> 00:37:44.080
Posso entrare qui.

00:37:44.080 --> 00:37:46.090
È qui che la bellezza
entra, giusto?

00:37:46.090 --> 00:37:49.270
Quindi questo è, quindi chiamiamolo.

00:37:49.270 --> 00:37:58.040
Quindi c'è il pulsante Shuffle
e c'è, andiamo.

00:37:59.460 --> 00:38:02.395
Cosa c'era al pulsante Ripeti?

00:38:02.395 --> 00:38:04.150
Sono una specie di qui accanto
l'uno all'altro, giusto?

00:38:04.150 --> 00:38:06.550
Quindi cerchiamo di ottimizzare l'impostazione di questo.

00:38:06.550 --> 00:38:09.430
Quindi questo è dove si inizializza

00:38:09.430 --> 00:38:13.435
le query per
ogni controllo nella pagina.

00:38:13.435 --> 00:38:18.235
Quindi è qui che la piattaforma trasversale
parte dell'oggetto pagina viene riprodotta.

00:38:18.235 --> 00:38:21.310
Se la query è il
stesso su entrambe le piattaforme,

00:38:21.310 --> 00:38:23.395
questo attuale è un grande esempio.

00:38:23.395 --> 00:38:25.600
Non credo che sarà
lo stesso su ciascuno solo perché abbiamo

00:38:25.600 --> 00:38:28.240
doveva passare attraverso come
il letto e figlio di una cosa,

00:38:28.240 --> 00:38:32.230
e i layout dell'interfaccia utente all'interno di iOS e
Android può essere un po 'diverso.

00:38:32.230 --> 00:38:33.700
Quindi questo è un buon candidato che non.

00:38:33.700 --> 00:38:36.940
Questo probabilmente non sta andando
essere un valore condiviso,

00:38:36.940 --> 00:38:39.730
ma qualcosa di simile
il commercio Now Playing.

00:38:39.730 --> 00:38:41.320
Dal momento che è lo stesso
su entrambe le piattaforme,

00:38:41.320 --> 00:38:43.105
si potrebbe solo letteralmente
entrare solo andare come

00:38:43.105 --> 00:38:46.405
Pulsante shuffle e poi solo
rilasciare la query qui,

00:38:46.405 --> 00:38:47.710
e questo significa solo che oh uso

00:38:47.710 --> 00:38:50.005
lo stesso valore di query
per quali piattaforme.

00:38:50.005 --> 00:38:52.450
Ma se è diverso per ciascuno,

00:38:52.450 --> 00:38:53.875
Separiamolo.

00:38:53.875 --> 00:38:56.875
Quindi, se su entrambe le piattaforme,

00:38:56.875 --> 00:38:58.885
come si farà per avere

00:38:58.885 --> 00:39:00.460
alcune impostazioni diverse in iOS e

00:39:00.460 --> 00:39:02.575
Android e aziende concetto simile.

00:39:02.575 --> 00:39:05.065
Quindi questo è ciò che il
Il pulsante shuffle ha l'aspetto,

00:39:05.065 --> 00:39:08.725
e abbiamo il pulsante Ripeti

00:39:08.725 --> 00:39:12.955
e l'indice di tale
era solo però,

00:39:12.955 --> 00:39:14.410
Credo di aver scambiato l'indice.

00:39:14.410 --> 00:39:17.935
Quindi questo è uno, questo è
due, boom [incomprensibile].

00:39:17.935 --> 00:39:20.560
Questo è tutto. ok. tu
potrebbe a questo punto

00:39:20.560 --> 00:39:23.725
in realtà basta continuare e
mettere giù i metodi di pagina.

00:39:23.725 --> 00:39:26.650
Così come per questa pagina
e Ora in riproduzione,

00:39:26.650 --> 00:39:34.790
questo sarà premere
come Pulsante casuale.

00:39:36.720 --> 00:39:40.915
Ho intenzione di restituire questo,

00:39:40.915 --> 00:39:42.940
solo perché questo è
un'azione che non è

00:39:42.940 --> 00:39:44.695
navigando vicino via d'uscita da questa pagina.

00:39:44.695 --> 00:39:46.150
Ho intenzione di rimanere e posso

00:39:46.150 --> 00:39:48.670
continuare a fare
più cose su questa pagina.

00:39:48.670 --> 00:39:51.370
Dopo questo posso andare e
fare clic sul pulsante viene visualizzato.

00:39:51.370 --> 00:39:53.050
Posso fare clic sul pulsante Condividi.

00:39:53.050 --> 00:39:55.255
Posso fare clic sul pulsante con i lipsia.

00:39:55.255 --> 00:39:57.310
Quindi questo è quello che ero

00:39:57.310 --> 00:39:59.290
parlando prima delle azioni
che rimangono sulla pagina,

00:39:59.290 --> 00:40:00.865
restituire il tipo di pagina stesso.

00:40:00.865 --> 00:40:03.325
Perché quando scrivi un test,

00:40:03.325 --> 00:40:06.460
può stringere lungo.

00:40:06.460 --> 00:40:08.320
Quindi un'altra cosa buona
Mi piace fare è,

00:40:08.320 --> 00:40:10.210
Mi piace sempre aspettare
per un elemento da

00:40:10.210 --> 00:40:12.775
appaiono prima di fare qualsiasi azione su di esso.

00:40:12.775 --> 00:40:16.510
E 'proprio come assertivo
vero o assertivo visibile,

00:40:16.510 --> 00:40:17.680
ma cerco solo di usare il peso per

00:40:17.680 --> 00:40:19.390
elemento solo perché
ha un built-in

00:40:19.390 --> 00:40:22.870
meccanismo di ripetizione dei tentativi già
alforato in esso dal test dell'interfaccia utente.

00:40:22.870 --> 00:40:25.720
Lo rende super bello.
Fa sentire il mio test un

00:40:25.720 --> 00:40:28.915
po 'più come mi sento
meglio su di esso prima.

00:40:28.915 --> 00:40:30.760
Giusto per assicurarsi che l'elemento
è stato effettivamente

00:40:30.760 --> 00:40:33.115
eseguito il rendering sullo schermo
prima di toccarlo.

00:40:33.115 --> 00:40:37.690
Quindi cerchiamo solo di vedere cosa c'era a

00:40:37.690 --> 00:40:43.450
guardia Premere Ripeti perché

00:40:43.450 --> 00:40:45.760
Voglio mostrarvi cosa
l'infilatura dei test assomiglia.

00:40:45.760 --> 00:40:48.085
Quindi torniamo questo.

00:40:48.085 --> 00:40:53.720
Ancora una volta, app. Pulsante Attendi per ripetere,

00:40:54.120 --> 00:41:00.805
e app. Tocca Ripeti pulsante.

00:41:00.805 --> 00:41:04.825
Va bene. Così ora fare
Ho questo pronto?

00:41:04.825 --> 00:41:08.020
Il passo successivo letteralmente
lasciato da fare sarebbe che mi piacerebbe

00:41:08.020 --> 00:41:10.480
rilanciare un Repl di nuovo
ma per iOS questa volta,

00:41:10.480 --> 00:41:12.670
e tutto quello che farò
per iOS è andare e

00:41:12.670 --> 00:41:15.265
trovare le query per
questi due pulsanti.

00:41:15.265 --> 00:41:17.260
Ecco, la mia pagina è impostata.

00:41:17.260 --> 00:41:19.240
Questo è tutto quello che dovete
Boh Quindi questo è solo

00:41:19.240 --> 00:41:20.860
tutto il buy-in iniziale di cui hai bisogno.

00:41:20.860 --> 00:41:22.330
Questo è tutto il tempo che passi

00:41:22.330 --> 00:41:23.815
la prima volta che li configura,

00:41:23.815 --> 00:41:25.120
e dopo che sono
super-semplice perché

00:41:25.120 --> 00:41:26.725
ora quello che ho intenzione di andare aggiungere un test.

00:41:26.725 --> 00:41:28.240
Aggiungiamo un test nuovo di zecca.

00:41:28.240 --> 00:41:32.630
Quindi chiamiamolo ora test di lampeggiare.

00:41:32.640 --> 00:41:37.180
Io vado a venire qui,

00:41:37.180 --> 00:41:38.890
aggiungere il BaseTestFixture.

00:41:38.890 --> 00:41:43.130
Questo ha bisogno di piattaforma.

00:41:44.430 --> 00:41:49.760
Andando a, aggiungere questo in,

00:41:50.310 --> 00:41:54.640
piattaforma, boom. Questo è tutto.

00:41:54.640 --> 00:41:56.950
Sei pronto. Per scrivere un test,

00:41:56.950 --> 00:41:58.930
mettiamo un tag di prova,

00:41:58.930 --> 00:42:00.940
non ha N unità qui.

00:42:00.940 --> 00:42:02.890
Quindi cerchiamo di tirare in N unità, dopo che.

00:42:02.890 --> 00:42:07.105
Quindi vuoto pubblico. Chiamiamolo,

00:42:07.105 --> 00:42:12.760
XamDevSummitTest perché sono
grande con i nomi. Va bene.

00:42:12.760 --> 00:42:16.000
Quindi, arrivando alla nuova homepage,

00:42:16.000 --> 00:42:18.970
e poi si vuole
aprire In riproduzione.

00:42:18.970 --> 00:42:22.240
Boom, tutto qui. Cioè
la mia prima azione. La prossima cosa.

00:42:22.240 --> 00:42:23.560
Ora che ho aperto Now Playing,

00:42:23.560 --> 00:42:24.730
Sono nella pagina In riproduzione.

00:42:24.730 --> 00:42:28.690
Così nuovo In riproduzione Pagina. Che cosa è stato?

00:42:28.690 --> 00:42:32.890
Quindi premiamo Ripeti e poi
Voglio continuare a fare azioni,

00:42:32.890 --> 00:42:38.020
e poi ho intenzione di premere
il pulsante Riproduzione in stato evitamento casuale. Questo è tutto.

00:42:38.020 --> 00:42:41.740
Quindi il test dell'interfaccia utente come una sorta di
che scorre e andare e correre in

00:42:41.740 --> 00:42:46.510
attraverso e mantenerlo

00:42:46.510 --> 00:42:48.520
ora andando avanti,
pensateci.

00:42:48.520 --> 00:42:50.050
Se torni dopo un paio di

00:42:50.050 --> 00:42:52.240
giorni o un paio di mesi
e leggete questo test,

00:42:52.240 --> 00:42:53.320
e tu dici: "Oh va bene,

00:42:53.320 --> 00:42:55.510
sì sto testando il
funzionalità per gli stati.

00:42:55.510 --> 00:42:57.940
Nulla è ambiguo. niente
è strano, tutto ha un senso.

00:42:57.940 --> 00:43:02.800
E 'leggibile. sì. Quindi è
un quadro che usiamo un bel po'.

00:43:02.800 --> 00:43:05.290
E 'popolare coning
la mia squadra e abbiamo avuto

00:43:05.290 --> 00:43:08.200
qualche buona condivisione di feedback
con altre persone.

00:43:08.200 --> 00:43:12.475
Ecco come letteralmente
l'implementazione si presenta come.

00:43:12.475 --> 00:43:14.935
Cosa mi resta da mostrare?

00:43:14.935 --> 00:43:17.485
Va bene, sì. Quindi voglio
rapidamente tornare qui.

00:43:17.485 --> 00:43:19.600
Ho coperto un sacco di esso in questo momento
quando ne parlavo,

00:43:19.600 --> 00:43:23.815
ma solo altri utili suggerimenti per i test dell'interfaccia utente.

00:43:23.815 --> 00:43:25.570
Ancora una volta test su dispositivi reali come io sono

00:43:25.570 --> 00:43:28.135
in questo momento, è super utile.

00:43:28.135 --> 00:43:30.370
Se si inserisceno punti di interruzione nei test

00:43:30.370 --> 00:43:32.215
e vi state chiedendo come
per raggiungere quei punti di interruzione.

00:43:32.215 --> 00:43:34.000
Quindi, se si fa doppio clic
ed eseguire un test,

00:43:34.000 --> 00:43:35.380
non li colpirà.

00:43:35.380 --> 00:43:37.330
Fare clic con il pulsante destro del mouse ed eseguire il debug,

00:43:37.330 --> 00:43:39.760
ed è allora che inizierà
colpire i punti di interruzione.

00:43:39.760 --> 00:43:41.590
Ti ho mostrato l'istruzione using.

00:43:41.590 --> 00:43:45.145
Ti ho mostrato i test case
e le categorie.

00:43:45.145 --> 00:43:50.410
Queste sono solo altre best practice
che abbiamo cercato di condividere,

00:43:50.410 --> 00:43:52.390
mantenendoche ogni desolato

00:43:52.390 --> 00:43:54.580
indipendente all'interno del suo status
è una buona pratica.

00:43:54.580 --> 00:43:57.370
Non legare le attività della catena
perché supponiamo che un test non riesca,

00:43:57.370 --> 00:43:58.780
non si vuole come
tutto il resto a fallire.

00:43:58.780 --> 00:44:01.540
Vuoi un po 'utile
informazioni per uscire.

00:44:01.540 --> 00:44:03.550
Siate deterministici.

00:44:03.550 --> 00:44:06.580
Si può mettere in porte posteriori
che si può richiamare in

00:44:06.580 --> 00:44:07.900
le tue applicazioni per cose come

00:44:07.900 --> 00:44:10.180
autenticazione o si desidera
per contrassegnare un servizio dati.

00:44:10.180 --> 00:44:13.190
Le porte posteriori sono
una grande cosa da esaminare.

00:44:13.200 --> 00:44:16.090
Che altro? Cercate di non loop.

00:44:16.090 --> 00:44:20.290
Utilizzare buone asserzioni, quindi
gli elementi assort sono visibili,

00:44:20.290 --> 00:44:21.430
peso che gli elementi sono visibili,

00:44:21.430 --> 00:44:22.630
elemento di peso è andato via.

00:44:22.630 --> 00:44:24.850
[non udibili] sono ottimi per le animazioni.

00:44:24.850 --> 00:44:26.290
Quindi, se avete
un'animazione di transizione,

00:44:26.290 --> 00:44:27.850
mettendo via lontano e attendere

00:44:27.850 --> 00:44:30.040
nessun elemento è una grande cosa da usare.

00:44:30.040 --> 00:44:32.320
Evitare Thread.Sleeps.

00:44:32.320 --> 00:44:34.015
È la cosa peggiore che tu possa fare.

00:44:34.015 --> 00:44:35.650
Non mettere Thread.Sleeps.

00:44:35.650 --> 00:44:38.380
Ancora una volta, basta fare attenzione se si loop.

00:44:38.380 --> 00:44:40.495
Looping non è tuo amico.

00:44:40.495 --> 00:44:42.220
Così ho fatto un po' di straordinario,

00:44:42.220 --> 00:44:45.620
ma posso fare rapidamente
domande, quindi domande.

00:44:46.230 --> 00:44:49.510
Basta andare avanti al microfono in modo

00:44:49.510 --> 00:44:51.120
che tutti gli altri
online può sentire anche voi.

00:44:51.120 --> 00:44:52.690
>> Così, quando hai menzionato backdoor,

00:44:52.690 --> 00:44:54.955
si sarebbe proprio in quel momento scrivere
un metodo all'interno del codice?

00:44:54.955 --> 00:44:57.700
>> Sì, esattamente. Così si
vogliono tenerli per iOS,

00:44:57.700 --> 00:44:58.945
metterli in app delegato

00:44:58.945 --> 00:45:01.420
e su Android mettendo
la tua attività principale,

00:45:01.420 --> 00:45:03.430
e poi si può invocare
lo stesso nome di stringa

00:45:03.430 --> 00:45:06.470
nel test e si può
fare quello che vuoi.

00:45:06.540 --> 00:45:09.070
>> Quindi, per le relazioni,

00:45:09.070 --> 00:45:12.280
c'è qualche piano futuro per
fare un visualizzatore come esso,

00:45:12.280 --> 00:45:14.575
come abbiamo per albero XML?

00:45:14.575 --> 00:45:16.780
>> Parliamone.
Vieni a conoscermi a

00:45:16.780 --> 00:45:18.670
lo stand e mi piace sentire le idee.

00:45:18.670 --> 00:45:21.670
Ho sentito questo feedback
e mi piace sapere

00:45:21.670 --> 00:45:22.780
di più e possiamo guardare in

00:45:22.780 --> 00:45:24.895
qualcosa di fare
qualcosa del genere, sì.

00:45:24.895 --> 00:45:27.220
>> Un altro nella tua pagina di base,

00:45:27.220 --> 00:45:29.665
hai fatto restituire questo.

00:45:29.665 --> 00:45:31.630
Restituire sempre la pagina in modo errato.

00:45:31.630 --> 00:45:34.420
Quindi non dobbiamo aspettare?

00:45:34.420 --> 00:45:37.630
Quindi, se si sta facendo il caricamento dei dati
e il tuo filatore è già alzato,

00:45:37.630 --> 00:45:38.860
andiamo nella pagina, abbiamo

00:45:38.860 --> 00:45:40.150
di fare qualcosa per questo, soprattutto?

00:45:40.150 --> 00:45:44.095
>> Sì. Così si può totalmente
gettarlo in quella pagina di base.

00:45:44.095 --> 00:45:45.850
Questo era solo un modo
di utilizzare la pagina di base.

00:45:45.850 --> 00:45:47.110
Voglio solo sottolineare il potere di

00:45:47.110 --> 00:45:48.730
aver condiviso i metodi in là.

00:45:48.730 --> 00:45:51.310
Si può effettivamente semplicemente scrivere
un'estensione o come un aiutante,

00:45:51.310 --> 00:45:52.540
e poi mettere qualcosa di simile,

00:45:52.540 --> 00:45:53.950
sai che sei
in attesa di un'animazione.

00:45:53.950 --> 00:45:55.990
Quindi basta essere come, hey, aspettare
per il filatore di andare via.

00:45:55.990 --> 00:45:57.415
Quindi aspettate nessun elemento,

00:45:57.415 --> 00:46:00.820
e inserire l'ID per la filatrice
o semplicemente usare la classe filatore,

00:46:00.820 --> 00:46:02.890
e poi basta verificare
che il filatore ha

00:46:02.890 --> 00:46:05.050
andato via e poi iniziare
facendo le vostre azioni. sì.

00:46:05.050 --> 00:46:07.995
>> sì. Un'ultima domanda forse
non è proprio nella tua zona,

00:46:07.995 --> 00:46:09.360
ma si prendono screenshot.

00:46:09.360 --> 00:46:11.070
C'è qualcosa che puoi fare

00:46:11.070 --> 00:46:15.075
per la corrispondenza di screenshot
con test precedenti come,

00:46:15.075 --> 00:46:16.650
perché se si sta facendo UI,

00:46:16.650 --> 00:46:18.120
si vuole sapere che
i tuoi elementi sono

00:46:18.120 --> 00:46:20.160
ancora sullo schermo
invece di fuori dallo schermo,

00:46:20.160 --> 00:46:22.995
Non so se si può
farlo nei rapporti.

00:46:22.995 --> 00:46:25.575
>> No, non in questo momento.

00:46:25.575 --> 00:46:29.440
Ancora una volta, ho sentito parlare di persone
che vogliono uno strumento che potrebbe farlo.

00:46:29.440 --> 00:46:30.895
Penso che sia anche una grande idea.

00:46:30.895 --> 00:46:32.605
L'unica cosa che mi viene in mente è,

00:46:32.605 --> 00:46:34.975
se si caricano questi test
all'App Center,

00:46:34.975 --> 00:46:36.685
genera questi rapporti per voi.

00:46:36.685 --> 00:46:38.200
Sarà come un controllo manuale però

00:46:38.200 --> 00:46:39.910
non c'è un modo automatizzato per farlo.

00:46:39.910 --> 00:46:42.370
Forse è possibile utilizzare i servizi cognitivi
e costruire quello strumento,

00:46:42.370 --> 00:46:43.895
e mi piacerebbe aiutarti.

00:46:43.895 --> 00:46:44.490
>> Va bene. Grazie.

00:46:44.490 --> 00:46:44.990
>> sì.

00:46:44.990 --> 00:46:48.790
>> Ciao, ho notato che in
uno dei vostri test si

00:46:48.790 --> 00:46:52.630
aveva un metodo di trascinamento con
alcuni Kubernetes hardcoded.

00:46:52.630 --> 00:46:52.900
>> sì.

00:46:52.900 --> 00:46:54.100
>> Sta andando a darvi problemi

00:46:54.100 --> 00:46:55.180
su dimensioni diverse da [non udibile]?

00:46:55.180 --> 00:46:57.565
>> E 'totalmente e
non è il modo consigliato per farlo.

00:46:57.565 --> 00:46:59.875
Era solo per questa demo,
Volevo solo strisciare.

00:46:59.875 --> 00:47:01.090
Non ho nemmeno strisciato così bene,

00:47:01.090 --> 00:47:05.350
ma il modo ideale per
fare che è di nuovo query

00:47:05.350 --> 00:47:07.390
a quell'elemento e l'uso
coordinate x e y

00:47:07.390 --> 00:47:09.880
perché questo è un mini giocatore
e ho l'ID per questo.

00:47:09.880 --> 00:47:11.770
Così si dovrebbe in
buona pratica di farlo,

00:47:11.770 --> 00:47:14.140
ed è quello che sarò
facendo per il codice effettivo.

00:47:14.140 --> 00:47:15.790
Voglio PR questo in Clancy,

00:47:15.790 --> 00:47:17.785
pulire questo, farlo sembrare più bello.

00:47:17.785 --> 00:47:20.560
Si prega di andare in e dare un'occhiata
a questo e dammi un feedback

00:47:20.560 --> 00:47:23.140
o semplicemente entrare e contribuire
più codice in là. Quindi sì.

00:47:23.140 --> 00:47:24.310
>> Grazie.

00:47:24.310 --> 00:47:27.100
>> Quindi e c'è in realtà io
pensare che nei miei correttori sono

00:47:27.100 --> 00:47:29.500
come un colpo a caratteristica
dove si può mettere in

00:47:29.500 --> 00:47:31.015
Quindi ti assicuri di passare il dito su di esso.

00:47:31.015 --> 00:47:32.170
>> Sì, si può strisciare ad esso.

00:47:32.170 --> 00:47:34.165
È possibile scorrere lo strumento,

00:47:34.165 --> 00:47:36.370
prende in o si può mettere
su un elemento che si desidera

00:47:36.370 --> 00:47:39.010
bersaglio a o come un x e y
coordinata a cui si desidera andare.

00:47:39.010 --> 00:47:43.255
Sì. Ok, proprio come
altre due domande penso di sì.

00:47:43.255 --> 00:47:44.830
>> Spesso troviamo che
quando stiamo registrando

00:47:44.830 --> 00:47:47.485
I test dell'interfaccia utente richiedono timeout,

00:47:47.485 --> 00:47:48.820
che lavorano alla grande su

00:47:48.820 --> 00:47:50.950
macchine locali e
il nostro server di costruzione, ma

00:47:50.950 --> 00:47:56.185
sentito continuamente assente o
c'è un modo per aggirarlo?

00:47:56.185 --> 00:47:58.105
>> Andiamo incontro a me allo stand.

00:47:58.105 --> 00:48:00.325
Mi piace vedere cosa esattamente
sta succedendo. sì.

00:48:00.325 --> 00:48:05.800
>> È Xamarin UI Tests come
quadro di riferimento

00:48:05.800 --> 00:48:06.130
>> Sì.

00:48:06.130 --> 00:48:08.035
>> -perché ho
sentito qualcos'altro.

00:48:08.035 --> 00:48:10.495
>> No, è in fase di
lavorato attivamente.

00:48:10.495 --> 00:48:12.985
E 'appena aggiornato al test dell'interfaccia utente

00:48:12.985 --> 00:48:16.570
3.0 perché ora abbiamo
Supporto NUnit 3.0.

00:48:16.570 --> 00:48:18.520
Quindi sì, sono attivamente
lavorando su di esso. sì.

00:48:18.520 --> 00:48:19.015
>> Grazie.

00:48:19.015 --> 00:48:21.565
>> Ok. Queste sono tutte domande
Posso prendere subito.

00:48:21.565 --> 00:48:22.660
Sarò allo stand,

00:48:22.660 --> 00:48:23.980
quindi per favore vieni a trovarmi e

00:48:23.980 --> 00:48:25.585
mi faccia tutte le altre domande
che hai.

00:48:25.585 --> 00:48:28.240
Mi piacerebbe guardare qualsiasi codice di test dell'interfaccia utente
che hai bisogno di aiuto,

00:48:28.240 --> 00:48:30.320
ma grazie mille.

