WEBVTT

00:00:00.000 --> 00:00:02.790
• 无法重新启动
我的计时器,所以我知道我在哪里。

00:00:02.790 --> 00:00:06.030
大家好下午好。

00:00:06.030 --> 00:00:10.170
午饭怎么样？每个人都喜欢
这个巨大的泡菜？我知道我有

00:00:10.170 --> 00:00:12.315
是啊,真棒

00:00:12.315 --> 00:00:17.565
所以这个会话是
关于U(I)测试,

00:00:17.565 --> 00:00:19.935
因此,你U(I)测试吗？

00:00:19.935 --> 00:00:22.950
所以在我开始之前,这是
我最喜欢的问题在世界上。

00:00:22.950 --> 00:00:24.705
这很容易。

00:00:24.705 --> 00:00:29.175
多少人写
测试？举手。

00:00:29.175 --> 00:00:31.830
流中的每个人
这是相当多的手。

00:00:31.830 --> 00:00:34.305
我很惊讶,我很高兴。

00:00:34.305 --> 00:00:38.290
现在,你们中有多少人考试？

00:00:39.130 --> 00:00:41.705
不错,太棒了

00:00:41.705 --> 00:00:44.060
所以这个会议基本上就是

00:00:44.060 --> 00:00:48.635
所以我不会做
U(I)测试的基本工作,

00:00:48.635 --> 00:00:51.350
有很多好的内容
在那里已经为这一点。

00:00:51.350 --> 00:00:54.185
超级简单,
检查 U(I) 测试。

00:00:54.185 --> 00:00:56.735
我将是的框架
谈论今天是

00:00:56.735 --> 00:00:58.070
字面上只是使

00:00:58.070 --> 00:01:00.740
使 U(I) 测试超级
简单和超级伟大。

00:01:00.740 --> 00:01:04.820
我们今天要谈的
是最佳实践,以及如何

00:01:04.820 --> 00:01:08.000
写的东西,
谈论了很多

00:01:08.000 --> 00:01:11.195
在今天的主题演讲中,
跨平台 U(I) 测试。

00:01:11.195 --> 00:01:14.435
我是谁？

00:01:14.435 --> 00:01:16.220
我很肯定没人认识我

00:01:16.220 --> 00:01:19.715
我不像有那么出名
很多,但我是斯韦基。

00:01:19.715 --> 00:01:24.250
我工作在什么,我们称之为
DevOps 客户顾问团队,

00:01:24.250 --> 00:01:25.950
我在所谓的子集

00:01:25.950 --> 00:01:28.570
移动客户顾问团队。

00:01:28.730 --> 00:01:31.260
我们真的很酷

00:01:31.260 --> 00:01:32.905
我们爱萨马林,我们爱移动,

00:01:32.905 --> 00:01:35.000
我们致力于使客户

00:01:35.000 --> 00:01:37.310
快乐,我们工作,使
我们的产品更好。

00:01:37.310 --> 00:01:39.710
因此,我们驱动了很多反馈,

00:01:39.710 --> 00:01:42.025
所以任何你想说的

00:01:42.025 --> 00:01:44.270
移动,你想讨论,

00:01:44.270 --> 00:01:47.015
运动鞋,不管怎样,
来找我

00:01:47.015 --> 00:01:50.240
我在旧金山的办公室工作。

00:01:50.240 --> 00:01:53.575
我以糖果代码而闻名

00:01:53.575 --> 00:01:56.055
所以如果你想要我
编写 U(I) 测试,

00:01:56.055 --> 00:01:58.170
你知道如何贿赂我,而我

00:01:58.170 --> 00:02:01.660
一个死硬的微软和
一个死硬的萨马林风扇。

00:02:03.380 --> 00:02:05.670
现在你知道我是谁了

00:02:05.670 --> 00:02:08.070
在推特上关注我,做我的朋友。

00:02:08.070 --> 00:02:10.110
让我们开始测试。

00:02:10.110 --> 00:02:13.035
所以萨马林U(I)测试。

00:02:13.035 --> 00:02:15.045
对于那些不熟悉的人,

00:02:15.045 --> 00:02:21.030
它是基于 NUnit 的单位
测试框架,

00:02:21.030 --> 00:02:24.435
但在C夏普,它允许
你写U(I)测试。

00:02:24.435 --> 00:02:27.434
目的,它被使用
移动平台,

00:02:27.434 --> 00:02:30.505
因此,您的应用并不总是
必须是一个Xamarin应用程序,

00:02:30.505 --> 00:02:32.690
因此,他们可以成为一个反应原语应用程序,
他们可以是原住民

00:02:32.690 --> 00:02:33.980
安卓或 iOS 应用程序,

00:02:33.980 --> 00:02:36.425
你仍然可以写
U(I)测试他们。

00:02:36.425 --> 00:02:39.420
如果你很熟悉
与NUnit的工作原理,

00:02:39.420 --> 00:02:42.065
他们的语法或测试将
看起来很熟悉你

00:02:42.065 --> 00:02:43.280
所以有一个测试夹具标签,

00:02:43.280 --> 00:02:46.220
有一个测试标签,你
在测试前做一些设置,

00:02:46.220 --> 00:02:48.380
你运行测试,然后你

00:02:48.380 --> 00:02:51.140
可以有东西,
在测试后发生。

00:02:51.140 --> 00:02:54.515
请直截了当,
萨马林U(I)测试,

00:02:54.515 --> 00:02:57.620
你可以运行这些测试
本地,然后如果你想,

00:02:57.620 --> 00:02:59.480
您可以使用该应用程序
中心测试服务器和

00:02:59.480 --> 00:03:02.155
然后运行测试
在我们的设备实验室。

00:03:02.155 --> 00:03:06.020
它还集成得非常好
用你的CICD管道,

00:03:06.020 --> 00:03:08.825
这是我最喜欢的部分
整个过程。

00:03:08.825 --> 00:03:12.000
因此,描述
谈话说了很多

00:03:12.000 --> 00:03:15.140
关于页面对象模式的弹出。

00:03:15.140 --> 00:03:17.510
那么,这到底是什么？

00:03:17.510 --> 00:03:20.765
因此,让我们这样谈谈。

00:03:20.765 --> 00:03:25.550
移动应用通常附带
一堆不同的观点,

00:03:25.550 --> 00:03:27.740
当我们真正编写Xamarin应用程序时,

00:03:27.740 --> 00:03:30.470
我们有一堆
视图,如果是 MVVM,

00:03:30.470 --> 00:03:32.060
你有你的意见
你有代码

00:03:32.060 --> 00:03:33.830
背后每个视图,这个和那个,

00:03:33.830 --> 00:03:35.850
如此简单的概念,认为

00:03:35.850 --> 00:03:38.400
你的应用程序是一堆
不同的页面,

00:03:38.400 --> 00:03:40.560
所以当你要写

00:03:40.560 --> 00:03:42.930
U(I) 测试
页面对象模式,

00:03:42.930 --> 00:03:44.450
我们要处理每一页

00:03:44.450 --> 00:03:47.540
个别作为
自己的独立类。

00:03:47.540 --> 00:03:51.035
所以该页面上的元素
住在这个班里

00:03:51.035 --> 00:03:52.730
交互,您可以

00:03:52.730 --> 00:03:55.145
这些元素生活
在同一类。

00:03:55.145 --> 00:03:57.790
所以,如果你有一个按钮在页面a,

00:03:57.790 --> 00:04:01.880
页面中的所有代码
a 的类将是一个查询

00:04:01.880 --> 00:04:03.320
系统将如何找到

00:04:03.320 --> 00:04:06.410
该按钮和任何方法
与按钮进行交互。

00:04:06.410 --> 00:04:10.250
所以点击一个按钮
或者如果是列表

00:04:10.250 --> 00:04:11.485
所以在列表上轻扫,

00:04:11.485 --> 00:04:13.790
所有这些方法
一页就住在那里

00:04:13.790 --> 00:04:15.125
适用于应用的页面 b,

00:04:15.125 --> 00:04:18.215
单独的类,共
有自己的东西。

00:04:18.215 --> 00:04:23.030
做背后的主要思想
事实是

00:04:23.030 --> 00:04:25.285
因为你分离了
出所有这些页面,

00:04:25.285 --> 00:04:27.275
它真的很容易维护。

00:04:27.275 --> 00:04:29.840
所以假设你进去了
你做出改变

00:04:29.840 --> 00:04:32.710
只是喜欢也许
在应用中设置页面,

00:04:32.710 --> 00:04:34.310
你所要做的就是去

00:04:34.310 --> 00:04:36.035
到设置页面
你的测试,只是

00:04:36.035 --> 00:04:37.475
更新那里的值,这是

00:04:37.475 --> 00:04:39.605
您的测试又恢复运行。

00:04:39.605 --> 00:04:41.460
因此,它超级容易维护,

00:04:41.460 --> 00:04:43.620
超级容易横向扩展,

00:04:43.620 --> 00:04:45.990
然后来到我最喜欢的部分

00:04:45.990 --> 00:04:48.490
这种模式,它
跨平台。

00:04:48.490 --> 00:04:51.775
因此,同一页可以
存在于 iOS 或 Android 上。

00:04:51.775 --> 00:04:56.005
那么,什么是可能的
这里没有区分因素？

00:04:56.005 --> 00:04:58.790
在安卓系统,按钮可以

00:04:58.790 --> 00:05:01.260
一个单独的查询,然后也

00:05:01.260 --> 00:05:02.460
也许有一点点

00:05:02.460 --> 00:05:04.110
没有不同的触摸行为,

00:05:04.110 --> 00:05:07.535
这样你就可以在你的代码中处理
与设备上的检查。

00:05:07.535 --> 00:05:09.260
所以再说一次,超级简单,

00:05:09.260 --> 00:05:10.520
超级容易设置,

00:05:10.520 --> 00:05:12.965
现在我们将看到更多关于它。

00:05:12.965 --> 00:05:15.230
所以我在说什么

00:05:15.230 --> 00:05:17.760
关于视觉上只是
想象整个事情。

00:05:17.760 --> 00:05:20.485
所以这些是不同的
应用页面,

00:05:20.485 --> 00:05:23.855
取每一页并转动
每个页面都变成一个类,

00:05:23.855 --> 00:05:26.420
这是字面上如何的第一步

00:05:26.420 --> 00:05:29.075
写页面
对象模式开始。

00:05:29.075 --> 00:05:33.840
所以,如果你想成为一个
有点花哨的它,

00:05:33.840 --> 00:05:35.855
当你完成设置

00:05:35.855 --> 00:05:37.130
整个架构模式和

00:05:37.130 --> 00:05:38.440
当你回去
你看看你的测试

00:05:38.440 --> 00:05:39.650
永远不会有

00:05:39.650 --> 00:05:41.660
一个你感觉的点,
"哦,我写了什么？

00:05:41.660 --> 00:05:43.280
这是什么意思？
将会有

00:05:43.280 --> 00:05:46.720
之间的直接关联
你的应用和测试。

00:05:46.720 --> 00:05:51.120
所以,它只是使它这么多
编写测试更好,

00:05:51.120 --> 00:05:54.710
我觉得它只是鼓励
每个人要预订,

00:05:54.710 --> 00:05:56.555
维护,并写良好的U(I)测试,

00:05:56.555 --> 00:05:59.065
我认为是非常重要的。

00:05:59.065 --> 00:06:01.020
如果可以的话,我会说的

00:06:01.020 --> 00:06:02.395
我一直这么说

00:06:02.395 --> 00:06:05.900
但我们生活在
移动应用和我们生活在这个时代

00:06:05.900 --> 00:06:07.130
使客户和

00:06:07.130 --> 00:06:09.530
您的用户真的很高兴
与您的移动应用。

00:06:09.530 --> 00:06:11.360
如果你不测试他们

00:06:11.360 --> 00:06:12.890
有一个最小子集

00:06:12.890 --> 00:06:15.890
10%的人没有得到
最好的视觉外观

00:06:15.890 --> 00:06:17.600
你的应用只是因为
你从来没有测试过它

00:06:17.600 --> 00:06:20.900
那部过时的手机
有人在用

00:06:20.900 --> 00:06:22.985
这就是你的方式
利用 U(I) 测试

00:06:22.985 --> 00:06:24.680
和应用程序中心和
确保你的应用

00:06:24.680 --> 00:06:26.390
看起来很漂亮,运行真的很好

00:06:26.390 --> 00:06:28.930
在所有不同的平台上
试图支持。

00:06:28.930 --> 00:06:34.940
所以下一个真棒事情
页面对象模式是,

00:06:34.940 --> 00:06:38.615
如果你已经写U(I)测试
之前或者如果你没有,

00:06:38.615 --> 00:06:41.645
这基本上是一个
简单的U(I)测试看起来像。

00:06:41.645 --> 00:06:43.100
所以,你,就像我说的,

00:06:43.100 --> 00:06:44.630
它非常相似
NUnit 模式,

00:06:44.630 --> 00:06:47.415
你必须设置,
你有实际测试

00:06:47.415 --> 00:06:48.745
在测试中,如果你看看,

00:06:48.745 --> 00:06:51.725
它有很长的行说,

00:06:51.725 --> 00:06:54.260
应用程序。点击,然后它试图

00:06:54.260 --> 00:06:57.685
在 上查找元素
屏幕的 ID。

00:06:57.685 --> 00:07:01.190
使用之美
页面对象模式是,

00:07:01.190 --> 00:07:03.680
它使它多一点
泛型,在某种意义上,

00:07:03.680 --> 00:07:05.705
记住那些页面
我说的是

00:07:05.705 --> 00:07:09.370
它从字面上成为
在登录页中,

00:07:09.890 --> 00:07:12.450
执行登录操作,

00:07:12.450 --> 00:07:14.480
然后使用此用户名
和密码。

00:07:14.480 --> 00:07:17.210
因此,它使它更容易阅读。

00:07:17.210 --> 00:07:19.520
所以再次,如果有人谁
以前没有做过测试,

00:07:19.520 --> 00:07:21.080
不是真的,"哦,

00:07:21.080 --> 00:07:23.470
我的上帝,我该怎么
写一个C夏普测试？

00:07:23.470 --> 00:07:25.275
他们可以来
在和像,"哦,

00:07:25.275 --> 00:07:26.610
这读起来就像英语一样,

00:07:26.610 --> 00:07:27.915
这不难理解

00:07:27.915 --> 00:07:29.940
我知道这个测试是怎么回事。

00:07:29.940 --> 00:07:34.470
所以我可以继续
像这样,

00:07:34.470 --> 00:07:36.325
但这不是任何乐趣。

00:07:36.325 --> 00:07:39.305
我现在要做的是

00:07:39.305 --> 00:07:41.420
我要换个开关

00:07:41.420 --> 00:07:43.820
编写页面对象按钮测试
现在为你

00:07:43.820 --> 00:07:47.100
因为谁不
像一些现场编码？

00:07:47.930 --> 00:07:52.590
所以,当我得到这个东西设置。

00:07:52.590 --> 00:07:55.760
因此,这已成为一个
我的侧爱好。

00:07:55.760 --> 00:07:59.815
所以这是一个应用程序,
我的好朋友詹姆斯·克兰西

00:07:59.815 --> 00:08:03.660
如果你记得他从
Xamarin 进化 2016,

00:08:03.660 --> 00:08:06.170
他给了我最喜欢的谈话
在异步等待,

00:08:06.170 --> 00:08:08.210
绝对兑现
YouTube 上的视频。

00:08:08.210 --> 00:08:11.490
但是,他一直
在他的音乐上工作

00:08:11.490 --> 00:08:14.870
一些谷歌音乐贷款,他
重写了他的谷歌

00:08:14.870 --> 00:08:16.730
所以它最初只针对 iOS,

00:08:16.730 --> 00:08:18.430
他一直在为公司重写它

00:08:18.430 --> 00:08:20.640
他是一个开源的
项目,他教它

00:08:20.640 --> 00:08:23.700
每个星期三,你
应该只检查他。

00:08:23.700 --> 00:08:26.150
我注意到他一直在写作

00:08:26.150 --> 00:08:27.840
所有这些网格 Xamarin 形式分数,

00:08:27.840 --> 00:08:29.985
但猜猜看,他没在做

00:08:29.985 --> 00:08:32.120
UI 测试,其中任何一个。

00:08:32.120 --> 00:08:36.995
因此,作为我的贡献
开源社区,

00:08:36.995 --> 00:08:39.410
现在,我们将编写 UI
克兰西的测试,

00:08:39.410 --> 00:08:42.990
和克兰西,如果你是
看着,欢迎你。

00:08:43.490 --> 00:08:48.370
所以在我开始之前

00:08:48.860 --> 00:08:51.495
所以,再次,这是提示和技巧,

00:08:51.495 --> 00:08:53.030
所以我要给
你的提示和技巧。

00:08:53.030 --> 00:08:56.630
提示1,我会总是
建议在真实设备上进行测试。

00:08:56.630 --> 00:08:58.340
所以你可以看到正确的
现在,但在这个桌子上,

00:08:58.340 --> 00:09:01.290
其实我有一个图标
已连接的 iOS 设备,

00:09:01.290 --> 00:09:03.305
而我在屏幕镜像
它现在给你。

00:09:03.305 --> 00:09:05.850
所以这就是应用程序
看起来现在

00:09:05.850 --> 00:09:07.380
所以如果你进去了

00:09:07.380 --> 00:09:08.850
你会看到一个歌曲列表,

00:09:08.850 --> 00:09:10.905
你可以向上滑动,

00:09:10.905 --> 00:09:15.450
你可以看到这个不错的
小现在玩屏幕。

00:09:15.450 --> 00:09:17.295
就他而言

00:09:17.295 --> 00:09:18.990
如果你轻扫到一边,

00:09:18.990 --> 00:09:21.195
看看这个美丽的
他的梯度,

00:09:21.195 --> 00:09:24.015
你可以看看
侧导航菜单。

00:09:24.015 --> 00:09:26.285
好。就他而言

00:09:26.285 --> 00:09:29.325
所以让我们得到一些U(我)
为此编写的测试。

00:09:29.325 --> 00:09:33.745
所以,因为你可以只是
在此处查看我的 iOS 设备,

00:09:33.745 --> 00:09:35.665
现在我要从 iOS 开始。

00:09:35.665 --> 00:09:38.960
这是U(I)测试项目,
你在左边看到

00:09:38.960 --> 00:09:42.850
这简直就是你
当我右键单击时,

00:09:42.850 --> 00:09:49.120
"添加"、"新项目",我选择
如果我的东西上来,我们就去。

00:09:49.120 --> 00:09:50.955
所以,如果我选择一个U(I)测试项目,

00:09:50.955 --> 00:09:54.260
这是空白模板
你得到的代码。

00:09:54.260 --> 00:09:55.910
我什么都没做

00:09:55.910 --> 00:09:58.505
这是你得到它。

00:09:58.505 --> 00:10:00.135
我所做的只是

00:10:00.135 --> 00:10:01.605
在应用程序初始化器中,

00:10:01.605 --> 00:10:05.190
我刚刚把一部分
到 APK 的

00:10:05.190 --> 00:10:07.160
Android 设备是构建到

00:10:07.160 --> 00:10:09.730
我把合成放在我的设备上

00:10:09.730 --> 00:10:12.275
我放入捆绑 ID
适用于 iOS 应用。

00:10:12.275 --> 00:10:15.680
所以这就是你所需要的
做开始。

00:10:15.680 --> 00:10:19.330
所以,以确保我
没弄断任何东西

00:10:19.330 --> 00:10:24.340
让我们让应用程序运行
因为这是步骤 1。

00:10:24.340 --> 00:10:26.795
因此,让我们得到iOS,

00:10:26.795 --> 00:10:29.510
让我们开始测试,
因此页面对象模式。

00:10:29.510 --> 00:10:30.955
模式的工作方式是,

00:10:30.955 --> 00:10:34.070
它基于四个主要页面。

00:10:34.070 --> 00:10:35.820
如果你要去

00:10:35.820 --> 00:10:40.580
我们的 GitHub 存储库
我们在那里设置了这个,

00:10:40.580 --> 00:10:42.140
那儿有个样品

00:10:42.140 --> 00:10:43.610
我们有一个维基,

00:10:43.610 --> 00:10:46.190
再次通过一切
我现在正在讨论

00:10:46.190 --> 00:10:47.385
所以如果你忘了

00:10:47.385 --> 00:10:49.055
只是进去读一读。

00:10:49.055 --> 00:10:51.165
但从字面上看,所有的U(I),

00:10:51.165 --> 00:10:53.179
模式的所有页面
可以封装

00:10:53.179 --> 00:10:55.790
到这四页,
我提到那边

00:10:55.790 --> 00:10:58.465
那个管理器,一个基本测试夹具,

00:10:58.465 --> 00:11:01.640
基页和平台查询。

00:11:05.330 --> 00:11:07.710
哎呀,我做了什么？

00:11:07.710 --> 00:11:10.060
我考试失败吗？

00:11:15.200 --> 00:11:17.385
好吧,我要去
如此出安卓,

00:11:17.385 --> 00:11:21.380
只是一点点,并得到这个运行。

00:11:21.380 --> 00:11:24.960
我的设备只是断开连接。

00:11:31.590 --> 00:11:37.630
我们拿到了谁会去
连接此备份。好吧。

00:11:37.630 --> 00:11:41.605
因此,我们有我们的雷普在一边,

00:11:41.605 --> 00:11:43.870
我们将用它来查询
屏幕上的元素,

00:11:43.870 --> 00:11:45.745
我们有我的应用程序在前面。

00:11:45.745 --> 00:11:49.150
但在我做这些之前
返回页面对象模式。

00:11:49.150 --> 00:11:51.310
所以这四个基页。

00:11:51.310 --> 00:11:53.830
每天,我只是进来,只是

00:11:53.830 --> 00:11:56.170
字面上只是去"文件新"
并复制在这些页面。

00:11:56.170 --> 00:11:59.470
但是如果你想成为
超级方便你,

00:11:59.470 --> 00:12:04.075
我们有一个NuGet包
可以导入,

00:12:04.075 --> 00:12:05.800
和所有所做的只是自动

00:12:05.800 --> 00:12:07.840
注入这四页
我提到过

00:12:07.840 --> 00:12:11.845
基础测试,基页,
平台查询和应用程序管理器。

00:12:11.845 --> 00:12:14.350
它只是补充说,在
自动为您。

00:12:14.350 --> 00:12:15.730
所以我要这么做。

00:12:15.730 --> 00:12:17.530
如果你注意到,一,二,

00:12:17.530 --> 00:12:20.260
三、四;四页被添加。

00:12:20.260 --> 00:12:22.030
让我们看看他们每个人看起来是什么

00:12:22.030 --> 00:12:24.040
我们有一件小事
在那里设置。

00:12:24.040 --> 00:12:30.925
因此,AppManager 将变成
新的应用程序初始化器。

00:12:30.925 --> 00:12:33.970
所有应用程序管理器字面上
做它只是告诉

00:12:33.970 --> 00:12:35.560
框架,这是

00:12:35.560 --> 00:12:38.305
Android应用程序是,这
是 iOS 应用的位置。

00:12:38.305 --> 00:12:40.840
因为我已经设置它
在这个代码在这里,

00:12:40.840 --> 00:12:44.680
我只是要复制那部分
因为我不想键入此

00:12:44.680 --> 00:12:48.820
再次出来,这在这里。

00:12:48.820 --> 00:12:51.340
所以,如果你正在做
这,另一个提示,

00:12:51.340 --> 00:12:53.770
在 Windows 和 Mac 上,

00:12:53.770 --> 00:12:56.035
您可以右键单击此处
并添加应用项目。

00:12:56.035 --> 00:12:57.985
这将连接到解决方案,

00:12:57.985 --> 00:12:59.380
如果你正在做一个Xamarin应用程序,

00:12:59.380 --> 00:13:02.530
你有你的解决方案
与 UITest 并排。

00:13:02.530 --> 00:13:05.365
您可以将它们连接到
彼此合作。

00:13:05.365 --> 00:13:11.410
我通常避免这样做
主要是因为有时它可以

00:13:11.410 --> 00:13:13.810
花几分钟,如果它是

00:13:13.810 --> 00:13:17.800
一个真正的大应用程序,它开始
因为它将重建应用程序,

00:13:17.800 --> 00:13:21.370
在设备上部署它,并且
然后开始测试。

00:13:21.370 --> 00:13:23.635
我只是喜欢更快的周转时间,

00:13:23.635 --> 00:13:25.420
所以我通常只是使

00:13:25.420 --> 00:13:27.250
确保应用程序已经
安装在我的设备上,

00:13:27.250 --> 00:13:28.420
然后我开始写测试

00:13:28.420 --> 00:13:33.500
很酷的小提示,他们
有时可以帮助你。

00:13:33.840 --> 00:13:36.730
让我来好吧。

00:13:36.730 --> 00:13:40.810
所以,我所做的一切是再次
只是把路径到哪里

00:13:40.810 --> 00:13:45.595
APK 和已安装
我的应用程序的移动 ID。

00:13:45.595 --> 00:13:47.980
我现在可以摆脱应用程序初始化程序,

00:13:47.980 --> 00:13:49.705
我不再需要这个了

00:13:49.705 --> 00:13:53.350
因此,让我们删除。下一步。

00:13:53.350 --> 00:13:55.585
我们已经完成了应用初始化程序。

00:13:55.585 --> 00:13:59.335
我们现在需要进来,让我们
看看基页。

00:13:59.335 --> 00:14:00.640
所以基页。

00:14:00.640 --> 00:14:02.650
所以每一页,我
是说的

00:14:02.650 --> 00:14:03.850
好像每个类都是一个页面,

00:14:03.850 --> 00:14:05.605
所以每一页都去
继承此。

00:14:05.605 --> 00:14:07.390
这一切是它为您提供

00:14:07.390 --> 00:14:09.685
与安卓和 iOS 上。

00:14:09.685 --> 00:14:11.980
所以,这是你可以做的
跨平台拆分

00:14:11.980 --> 00:14:13.810
我说的

00:14:13.810 --> 00:14:16.390
另一个很酷的事情,
基础页为

00:14:16.390 --> 00:14:18.715
你是它采取一个免费的截图。

00:14:18.715 --> 00:14:21.295
所以,如果你想运行
这些测试在应用程序中心,

00:14:21.295 --> 00:14:23.830
通常是你没有
测试中的屏幕截图,

00:14:23.830 --> 00:14:25.030
如果你只是上传一个测试,

00:14:25.030 --> 00:14:26.860
你不会得到
一个好的测试结果。

00:14:26.860 --> 00:14:28.330
为了让你的生活轻松,

00:14:28.330 --> 00:14:30.610
我们有一个断言页。

00:14:30.610 --> 00:14:33.250
是免费的。它做它
自动在每个页面上。

00:14:33.250 --> 00:14:35.290
因此,在每个页面上,
继承 BasePage,

00:14:35.290 --> 00:14:37.600
它会自动
去核实,"嘿,

00:14:37.600 --> 00:14:40.434
这是我在期待的页面上吗？

00:14:40.434 --> 00:14:42.820
现在,你会想知道如何
系统会知道或

00:14:42.820 --> 00:14:45.190
我们如何验证它的
在页面上,它需要。

00:14:45.190 --> 00:14:47.200
这就是魔法
小东西和

00:14:47.200 --> 00:14:49.780
第四个文件称为平台查询。

00:14:49.780 --> 00:14:52.660
因此,这是我们在

00:14:52.660 --> 00:14:54.010
此模式,以确保你

00:14:54.010 --> 00:14:55.840
在页面上,你期望。

00:14:55.840 --> 00:14:58.315
例如,如果您
在登录页面上,

00:14:58.315 --> 00:15:01.060
很可能有些人
通常有字

00:15:01.060 --> 00:15:03.700
登录或登录该页面,

00:15:03.700 --> 00:15:05.440
你可以只使用
作为平台托盘

00:15:05.440 --> 00:15:07.180
以确保你
在页面上是预料之中的,

00:15:07.180 --> 00:15:09.100
所以只是一些东西
该页面的独特。

00:15:09.100 --> 00:15:10.870
所以你知道,好吧,

00:15:10.870 --> 00:15:12.490
我在页面上
预期是和我

00:15:12.490 --> 00:15:14.665
可以执行该页上的操作。

00:15:14.665 --> 00:15:17.455
漂亮的部分是一次
验证你当时在那个页面上

00:15:17.455 --> 00:15:18.850
它为您拍摄免费截图。

00:15:18.850 --> 00:15:21.325
因此,它就像在这个页面。

00:15:21.325 --> 00:15:24.415
好吧。所以这是
BasePage 的作用。

00:15:24.415 --> 00:15:29.575
基本测试装置是每个测试
将继承这个。

00:15:29.575 --> 00:15:32.050
相同的过程。所以他们
提供那些

00:15:32.050 --> 00:15:34.870
iOS 和 Android 值在这里。

00:15:34.870 --> 00:15:37.870
再次,有时有
在应用程序的一些缺陷,可以

00:15:37.870 --> 00:15:41.620
默认小位
在 iOS 和安卓系统之间。

00:15:41.620 --> 00:15:43.780
所以在你的测试中,你
可以有一个分手和

00:15:43.780 --> 00:15:46.870
使用这些值的缺陷。

00:15:46.870 --> 00:15:50.035
从字面上看,它所做的只是抓住

00:15:50.035 --> 00:15:52.735
来自应用管理器的值
并为您启动应用程序。

00:15:52.735 --> 00:15:54.580
就是这个超级简单

00:15:54.580 --> 00:15:57.860
没有什么太复杂,没有
太花哨地发生在这里。

00:15:57.870 --> 00:16:02.140
最后一个是测试本身。

00:16:02.140 --> 00:16:06.160
所以,这是如何
初始测试看起来像,

00:16:06.160 --> 00:16:08.610
但如果你注意到
在测试夹具中,

00:16:08.610 --> 00:16:11.580
我们已经像所有
这些标记的东西在那里。

00:16:11.580 --> 00:16:13.470
因此,我们可以精简整个测试,

00:16:13.470 --> 00:16:15.060
它不需要所有这些值。

00:16:15.060 --> 00:16:21.220
它会开始寻找什么
像这样是那样的

00:16:21.220 --> 00:16:26.365
因此,您的测试将字面上
只需继承 BaseTestFixture。

00:16:26.365 --> 00:16:27.970
再说一遍,我们穿过了平台,

00:16:27.970 --> 00:16:30.775
因此,它知道要在什么平台上运行。

00:16:30.775 --> 00:16:34.450
因此,雷普是
只读 eval 循环,

00:16:34.450 --> 00:16:36.685
这导致了查询
元素。

00:16:36.685 --> 00:16:38.935
所以你可以有一个测试
只是启动,

00:16:38.935 --> 00:16:40.960
然后我再做一次测试
已经写在

00:16:40.960 --> 00:16:44.155
这里进入主页,

00:16:44.155 --> 00:16:46.750
喜欢在主页上,
应用程序正在打开。

00:16:46.750 --> 00:16:48.355
让我再次拉起应用程序。

00:16:48.355 --> 00:16:52.690
它会轻扫,它会
进入"设置"选项卡。

00:16:52.690 --> 00:16:57.490
如此简单的测试只是为了确保
我没有把事情搞砸

00:16:57.490 --> 00:16:58.765
因此,测试就在那里。

00:16:58.765 --> 00:17:02.470
让我们来看看什么
完整的页面看起来像。

00:17:02.470 --> 00:17:04.495
我们将写下来
此页,所以不要担心。

00:17:04.495 --> 00:17:08.540
因此,通过期待。

00:17:09.060 --> 00:17:12.745
因此,这就是页面的外观。

00:17:12.745 --> 00:17:16.150
这里有一些提示。外星人的东西

00:17:16.150 --> 00:17:19.855
Word 查询使
生活这么好。

00:17:19.855 --> 00:17:24.145
所以当你设置
屏幕上的不同按钮,

00:17:24.145 --> 00:17:25.930
你可以简单地做查询,

00:17:25.930 --> 00:17:28.450
或者你甚至可以
成一个花哨的小怪乐。

00:17:28.450 --> 00:17:30.190
所以,这是一个很酷的小提示。

00:17:30.190 --> 00:17:31.780
所以我们没有这些
按钮。

00:17:31.780 --> 00:17:33.385
我要评论
这现在。

00:17:33.385 --> 00:17:36.820
接下来你会注意到
是它继承了一些BasePage。

00:17:36.820 --> 00:17:39.820
所以,如果我删除这个,

00:17:39.820 --> 00:17:41.860
系统将
自动像,

00:17:41.860 --> 00:17:43.135
没有,有错。

00:17:43.135 --> 00:17:46.270
我不会让你这么做的
因为您需要实现

00:17:46.270 --> 00:17:49.960
平台查询实现。

00:17:49.960 --> 00:17:52.810
因为就像我说的
是什么驱动了系统,

00:17:52.810 --> 00:18:00.520
它基本上是帮助
系统理解抱歉,

00:18:00.520 --> 00:18:02.635
没关系,这是上
我应该成为的页面

00:18:02.635 --> 00:18:05.275
现在我可以执行
对它的行动。

00:18:05.275 --> 00:18:11.320
所以主页,这是字面上
它登陆的这个页面,

00:18:11.320 --> 00:18:15.730
它检查,所以在iOS上,

00:18:15.730 --> 00:18:17.890
这是此按钮的文本。

00:18:17.890 --> 00:18:19.690
我没有打开 iOS,是吗？

00:18:19.690 --> 00:18:21.910
它检查此按钮
上面写着"音乐"。

00:18:21.910 --> 00:18:25.420
但是,如果你会注意到,有
没有菜单添加任务在Android。

00:18:25.420 --> 00:18:28.960
因此,让我们来看看什么贸易
可能是为安卓的。

00:18:28.960 --> 00:18:31.525
让我来,我的雷普呢？

00:18:31.525 --> 00:18:33.970
不是我的终端走开了

00:18:33.970 --> 00:18:39.080
让我们看看我们
一直在这里。

00:18:40.140 --> 00:18:43.780
在这巨大的事物流中,

00:18:43.780 --> 00:18:45.625
这可能有点压倒性。

00:18:45.625 --> 00:18:47.125
如果您正在编写 UI
第一次测试,

00:18:47.125 --> 00:18:48.340
我知道很多人

00:18:48.340 --> 00:18:49.930
喜欢看强奸
我不怪你

00:18:49.930 --> 00:18:51.670
这是 Cortana 信息。

00:18:51.670 --> 00:18:54.940
再次,一些提示和技巧
只是为了让你的生活更轻松

00:18:54.940 --> 00:18:58.765
这些方括号中的东西
通常是类。

00:18:58.765 --> 00:19:01.750
如果要查询类
你试着找出来

00:19:01.750 --> 00:19:04.660
如果我能找到一个ID
页面或元素,

00:19:04.660 --> 00:19:07.480
我可以使用类,这
是您想要使用的内容。

00:19:07.480 --> 00:19:09.310
我要做的是

00:19:09.310 --> 00:19:12.295
实际上,我进去了,并补充说
几个自动化的D,

00:19:12.295 --> 00:19:15.010
我看到现在有
播放页面,有

00:19:15.010 --> 00:19:17.800
迷你播放器,这是
这个东西在底部,

00:19:17.800 --> 00:19:19.900
所以我要使用
作为特质。

00:19:19.900 --> 00:19:21.940
让我们在这里换一下它,

00:19:21.940 --> 00:19:23.635
所以我们有迷你播放器

00:19:23.635 --> 00:19:26.530
所以主页看起来不错
对我来说够多了,那很好。

00:19:26.530 --> 00:19:28.990
我不会把任何方法
在主页上,现在只是

00:19:28.990 --> 00:19:31.480
因为我们不做
主页上的任何操作,

00:19:31.480 --> 00:19:34.885
我们所做的只是刷卡
到那边的菜单。

00:19:34.885 --> 00:19:39.145
我要回去
基页了一点,

00:19:39.145 --> 00:19:41.980
因为有
酷时髦的小东西

00:19:41.980 --> 00:19:44.065
我在这里,我
要复制过来。

00:19:44.065 --> 00:19:47.230
正在发生的事情是

00:19:47.230 --> 00:19:49.585
基页是超级强大的。

00:19:49.585 --> 00:19:51.940
我很酷的事情之一
想在这里强调的是,

00:19:51.940 --> 00:19:55.750
如果你看看这个应用程序如何
工作,让我把它,

00:19:55.750 --> 00:19:58.390
所以你现在在你的歌曲里

00:19:58.390 --> 00:20:00.160
你可以切换到艺术家。

00:20:00.160 --> 00:20:03.835
同样,侧菜单仍然是
可从同一页面访问。

00:20:03.835 --> 00:20:06.010
如果我进入流派,

00:20:06.010 --> 00:20:08.245
再次侧菜单是可访问的,

00:20:08.245 --> 00:20:09.940
我爱东道主
没有人有

00:20:09.940 --> 00:20:12.055
对我在音乐中的垃圾味做出反应

00:20:12.055 --> 00:20:14.210
你们是最好的

00:20:14.760 --> 00:20:17.245
问题是,这是一个共享页面

00:20:17.245 --> 00:20:18.880
就像共享功能一样

00:20:18.880 --> 00:20:20.800
因此,让我们共享代码。

00:20:20.800 --> 00:20:24.670
我要把这个
在我的基页里

00:20:24.670 --> 00:20:29.185
所以这一切正在做的是这个
是选择菜单方法,

00:20:29.185 --> 00:20:31.090
这是要做的
开放的动作

00:20:31.090 --> 00:20:33.250
菜单,并选择一个菜单项。

00:20:33.250 --> 00:20:35.845
我要把它放在基本页面
因为它看起来像

00:20:35.845 --> 00:20:39.460
在这个应用程序的每一个页面
有权访问此基页。

00:20:39.460 --> 00:20:41.470
它会使
我的生活更容易做到这一点。

00:20:41.470 --> 00:20:45.775
另一个很酷的把戏是回报
这些方法的值。

00:20:45.775 --> 00:20:47.635
如果返回您正在打开的页面,

00:20:47.635 --> 00:20:49.450
您可以继续串在方法上

00:20:49.450 --> 00:20:51.895
只是让你的测试
看起来好多了

00:20:51.895 --> 00:20:54.865
我们推荐的内容
页面对象模式是,

00:20:54.865 --> 00:20:58.825
如果它是一个方法,不
浏览出该页面,

00:20:58.825 --> 00:21:00.610
使返回类型为页面本身。

00:21:00.610 --> 00:21:01.990
因为这意味着
你将继续

00:21:01.990 --> 00:21:03.400
在页面上执行更多操作,

00:21:03.400 --> 00:21:06.490
你不想新上一页
当你写测试。

00:21:06.490 --> 00:21:08.560
但是,如果你导航
远离页面,

00:21:08.560 --> 00:21:10.210
这意味着有
将成为一个新的页面

00:21:10.210 --> 00:21:12.580
在此方法之后发生
还是完成了,

00:21:12.580 --> 00:21:16.615
所以,当你想使
它宽。这是另一个很酷的提示。

00:21:16.615 --> 00:21:22.420
我没有使用别名
在这里,让我拉过来,

00:21:22.420 --> 00:21:26.000
你想用一些滑稽和哇。

00:21:26.790 --> 00:21:31.900
好吧,这看起来很开心
看起来不错

00:21:31.900 --> 00:21:33.760
我有一个类似的事情,做

00:21:33.760 --> 00:21:38.185
从底部拖动操作
打开现在的普通视图。

00:21:38.185 --> 00:21:40.495
同样,这是一个共享行动
无论你是哪个页面

00:21:40.495 --> 00:21:42.790
上你应该能够
再次执行此操作,

00:21:42.790 --> 00:21:44.770
我已经把它放在我的主页上了。

00:21:44.770 --> 00:21:46.900
你会开始注意到
像我们一样的东西

00:21:46.900 --> 00:21:48.490
做所有这些
原则,你会做

00:21:48.490 --> 00:21:50.080
当你写一个应用程序不

00:21:50.080 --> 00:21:52.120
必然当
你在写测试

00:21:52.120 --> 00:21:54.910
的亮点
整件事就是

00:21:54.910 --> 00:21:57.040
编写测试就像编写应用程序一样。

00:21:57.040 --> 00:21:58.570
我是说如果你聪明的话

00:21:58.570 --> 00:22:00.175
你可以去测试套房稳健,

00:22:00.175 --> 00:22:01.480
它只是使写作

00:22:01.480 --> 00:22:04.310
测试和维护
他们这么多更好。

00:22:04.380 --> 00:22:06.805
酷,所以基于习惯的设置,

00:22:06.805 --> 00:22:08.455
我有我的主页设置。

00:22:08.455 --> 00:22:10.390
我们有我们的测试去,

00:22:10.390 --> 00:22:11.440
所以我要评论

00:22:11.440 --> 00:22:14.530
这个旧的测试文件,因为
我们不再需要这个了

00:22:14.530 --> 00:22:18.085
这是我们的设置。

00:22:18.085 --> 00:22:23.230
另一个很酷的提示,这是所有
运行通过 Nunit。

00:22:23.230 --> 00:22:25.390
是的,如果你现在支持Nunit3

00:22:25.390 --> 00:22:30.170
因此,您可以将 Nunit 3 与 UI 测试一起使用。

00:22:30.960 --> 00:22:34.600
突出显示并使用每一个电源
Nunit 提供的。

00:22:34.600 --> 00:22:38.690
使用测试用例,您
知道优化您的办公桌。

00:22:39.900 --> 00:22:43.075
就像你
所有的这种力量,

00:22:43.075 --> 00:22:44.560
别忘了
即使这有

00:22:44.560 --> 00:22:46.300
Xamarin UI 测试在 N 单元上运行,

00:22:46.300 --> 00:22:48.610
您拥有所有 Nunit 功能
可供您使用。

00:22:48.610 --> 00:22:50.965
所以,你可以断言,你
可以使用测试用例,

00:22:50.965 --> 00:22:52.615
您可以使用忽略,

00:22:52.615 --> 00:22:56.410
您也可以使用
我最喜欢的东西类别。

00:22:56.410 --> 00:22:59.590
我最喜欢的东西
与类别是

00:22:59.590 --> 00:23:02.275
设置与烟雾测试的测试,

00:23:02.275 --> 00:23:04.825
夜间测试,开发测试。

00:23:04.825 --> 00:23:08.665
如果您有 CI/CD 设置
其中的 UI 测试,

00:23:08.665 --> 00:23:10.690
分类您的测试,
所以你不跑

00:23:10.690 --> 00:23:12.625
每次整个测试套件。

00:23:12.625 --> 00:23:16.465
所以,如果它只是一个开发BR检查
只是让它在烟雾测试中运行。

00:23:16.465 --> 00:23:18.490
如果它是每天的大,

00:23:18.490 --> 00:23:19.840
执行

00:23:19.840 --> 00:23:22.825
你的整个套房,并调用
您日常的测试类别。

00:23:22.825 --> 00:23:24.640
如果这是耐克的出价,那我

00:23:24.640 --> 00:23:26.830
建议做喜欢
整个测试端到端,

00:23:26.830 --> 00:23:28.150
只是因为没有人的
工作和你

00:23:28.150 --> 00:23:30.145
拥有所有三台电脑。

00:23:30.145 --> 00:23:36.410
再次,使用杠杆所有很酷
Nunit必须提供的东西。

00:23:36.540 --> 00:23:42.145
我要重建

00:23:42.145 --> 00:23:43.540
哎呀,我的强奸已经打开,

00:23:43.540 --> 00:23:44.725
不是吗？是的，我愿意。

00:23:44.725 --> 00:23:47.380
让我们退出这个,

00:23:47.380 --> 00:23:50.905
强奸是好的,看起来确实快乐。

00:23:50.905 --> 00:23:58.930
我们设置测试用例
设置页面,并检查出来。

00:23:58.930 --> 00:24:03.010
现在将其设置在
单元测试面板,

00:24:03.010 --> 00:24:05.260
所以我要打开
设置页面,,

00:24:05.260 --> 00:24:07.285
让我们看看这看起来像什么。

00:24:07.285 --> 00:24:10.795
尝试二号与 iOS,
让我们看看这如何。

00:24:10.795 --> 00:24:14.300
不,它不喜欢
我的 iOS 设备,为什么？

00:24:16.920 --> 00:24:21.490
哎呀,站在这个,杀死应用程序。

00:24:21.490 --> 00:24:25.300
再次获取此应用程序,干净。

00:24:25.300 --> 00:24:35.155
我们走吧,来吧

00:24:35.155 --> 00:24:37.520
别在我身上编辑它

00:24:37.800 --> 00:24:40.825
使所有的演示神快乐。

00:24:40.825 --> 00:24:45.610
当它运行时,让我看看,

00:24:45.610 --> 00:24:48.670
我正想说些什么
只是,哦,是的,它现在运行。

00:24:48.670 --> 00:24:54.710
让我们看看这一点如何。
它正在打开应用程序。

00:24:57.450 --> 00:25:01.990
不,它没有刷卡
选择我的菜单项。

00:25:01.990 --> 00:25:04.550
我现在很伤心,让我们
看看发生了什么

00:25:04.650 --> 00:25:08.840
站点左右,我们有菜单。

00:25:13.650 --> 00:25:16.000
接下来的事情,这将
发生,但让我们说

00:25:16.000 --> 00:25:18.085
我在调试测试上做的。

00:25:18.085 --> 00:25:20.260
不知道为什么这不起作用,

00:25:20.260 --> 00:25:22.210
我要做的是去
进入这里的强奸,

00:25:22.210 --> 00:25:24.010
我要核实
为什么我的测试不起作用

00:25:24.010 --> 00:25:25.870
因为老实说,我
以为这是要

00:25:25.870 --> 00:25:30.530
工作,因为我需要它
像一篇文章一样工作。

00:25:33.570 --> 00:25:36.985
这是已完成的测试,

00:25:36.985 --> 00:25:39.565
哦,我的上帝,我应该
记得杀了那个

00:25:39.565 --> 00:25:44.290
您看到了已完成的外观

00:25:44.290 --> 00:25:46.090
测试看起来像
和如何一堆

00:25:46.090 --> 00:25:48.550
我的 Go-Share 和方法共享
你可以这样做。

00:25:48.550 --> 00:25:53.080
你如何开始
出来写一个新的测试,

00:25:53.080 --> 00:25:55.435
所以也许转换测试
你已经有。

00:25:55.435 --> 00:25:57.130
第一步将是字面上

00:25:57.130 --> 00:25:58.885
我刚才做的事
在 UI 测试中添加,

00:25:58.885 --> 00:26:01.405
您可以使用流行包
或者你可以进入

00:26:01.405 --> 00:26:05.690
GitHub 并手动复制
那些页面,任何你喜欢的。

00:26:06.240 --> 00:26:10.180
第二件事是
就像我说的你进去了

00:26:10.180 --> 00:26:11.500
编辑应用管理器文件,

00:26:11.500 --> 00:26:14.260
删除所有应用程序初始化程序
文件,你做了这一切。

00:26:14.260 --> 00:26:17.050
你进来然后

00:26:17.050 --> 00:26:19.795
下一步字面上只是
开始创建页面。

00:26:19.795 --> 00:26:22.150
我已经创建了主页
与那里的贸易,

00:26:22.150 --> 00:26:23.560
但从字面上看,这是下一步。

00:26:23.560 --> 00:26:25.120
初始买入可以是

00:26:25.120 --> 00:26:26.920
有点昂贵,因为
它需要一点点

00:26:26.920 --> 00:26:30.490
时间取决于页面数
以及应用的先进程度。

00:26:30.490 --> 00:26:31.870
但好的部分是

00:26:31.870 --> 00:26:33.460
你实际上可以拆分这项工作

00:26:33.460 --> 00:26:35.200
因为它是独立的
谁在做它。

00:26:35.200 --> 00:26:36.715
因为那个页面上的每个人

00:26:36.715 --> 00:26:38.110
所以你可以分裂的工作

00:26:38.110 --> 00:26:39.640
写每页
五个人之间

00:26:39.640 --> 00:26:41.005
每个人都写一页

00:26:41.005 --> 00:26:43.810
它,你有
完成的初始设置。

00:26:43.810 --> 00:26:47.800
因为一旦页面在
最耗时的

00:26:47.800 --> 00:26:50.365
然后你只是做饭
编写测试的方法,

00:26:50.365 --> 00:26:52.645
超级简单,它是
非常简单。

00:26:52.645 --> 00:27:00.500
现在,让我们看看为什么我的刷卡
从右到左没有刷卡。

00:27:03.750 --> 00:27:07.840
那么,我的代码是否另有解决方法呢？

00:27:07.840 --> 00:27:11.170
我的代码是正确的
左边,好吧,让我们看看。

00:27:11.170 --> 00:27:14.090
我把强奸案打开,我们来核实一下。

00:27:14.100 --> 00:27:18.730
如果从右向左
没做什么奇怪的事

00:27:18.730 --> 00:27:20.740
好吧,我们从左到右走
我想你们是对的

00:27:20.740 --> 00:27:27.400
我认为这是应该的
向左向右滑动。

00:27:28.380 --> 00:27:31.615
给你,好抓。谢谢。

00:27:31.615 --> 00:27:35.470
喜悦的表决,没有
你睡着了,这很好。

00:27:35.470 --> 00:27:37.090
我讨厌做会话
午饭后,因为

00:27:37.090 --> 00:27:39.860
我一直确信
每个人都半睡半醒

00:27:41.010 --> 00:27:44.065
我做的另外一件事
这里是我开始把

00:27:44.065 --> 00:27:46.330
函数示例
看起来像,

00:27:46.330 --> 00:27:48.790
但我自己把事情简单了

00:27:48.790 --> 00:27:50.500
这简直就是在做

00:27:50.500 --> 00:27:53.570
字符串查询匹配
和这里的东西。

00:27:53.790 --> 00:27:56.890
另一件事我喜欢
通常做的是,因为像我

00:27:56.890 --> 00:27:59.380
说,最初的设置
只是页面,

00:27:59.380 --> 00:28:01.900
和最快的方法
以查找

00:28:01.900 --> 00:28:05.190
页面 I App.闪存一切,

00:28:05.190 --> 00:28:07.695
这是我最喜欢的东西在这里。

00:28:07.695 --> 00:28:11.470
因为我想轻点
在"设置"按钮上,

00:28:12.050 --> 00:28:15.215
如果我只是补充。闪存设置,

00:28:15.215 --> 00:28:18.160
我能弄明白
有两个设置按钮,

00:28:18.160 --> 00:28:21.920
我只是需要让它去,做。

00:28:22.830 --> 00:28:25.705
这就是我的确切设置
按钮,就到它了。

00:28:25.705 --> 00:28:28.375
如果你只是花了一点点
时间,只是继续这样做,

00:28:28.375 --> 00:28:30.775
它使设置
这个页面超快。

00:28:30.775 --> 00:28:33.160
此外,在大多数情况下,如果
你就是那个

00:28:33.160 --> 00:28:35.440
写了你知道的应用程序
什么自动化 ID 您

00:28:35.440 --> 00:28:37.465
附在Xamarin表格或

00:28:37.465 --> 00:28:40.540
辅助功能上的名称
您提供的 ID。

00:28:40.540 --> 00:28:42.700
所以,你很可能
已知道查询。

00:28:42.700 --> 00:28:44.260
它应该超快,

00:28:44.260 --> 00:28:47.245
和超级直观
一旦你进入它。

00:28:47.245 --> 00:28:50.814
我去抓这个

00:28:50.814 --> 00:28:52.660
我要改变这一点,因为

00:28:52.660 --> 00:28:54.550
它不需要
是这个复杂的。

00:28:54.550 --> 00:29:01.255
这实际上可能只是一个字符串
它可以住在这里

00:29:01.255 --> 00:29:03.830
那我就用

00:29:05.460 --> 00:29:07.690
我今天没说这个

00:29:07.690 --> 00:29:09.800
不,就在这里,好吧。

00:29:17.450 --> 00:29:24.105
不,不,不来,
好吧,等一下

00:29:24.105 --> 00:29:26.830
我要做一个
有点摸索在这里。

00:29:30.770 --> 00:29:35.320
我想炫耀
如何写这些。

00:29:37.520 --> 00:29:40.125
好。看起来不错

00:29:40.125 --> 00:29:47.140
让我们改变你,然后
让我们改变你

00:29:49.580 --> 00:29:53.010
我再次需要我的查询。

00:29:53.010 --> 00:29:57.040
所以我要回去
这里。这就是查询。

00:30:00.800 --> 00:30:03.060
我这里需要什么？

00:30:03.060 --> 00:30:10.270
所以,我只是
设置此设置。

00:30:16.040 --> 00:30:18.120
事实上,我甚至不

00:30:18.120 --> 00:30:20.400
需要了,现在
我想到的

00:30:20.400 --> 00:30:23.205
我可以进来做这个

00:30:23.205 --> 00:30:29.580
扔在我的兰姆达检查
就在这里

00:30:29.580 --> 00:30:33.900
所以,使元素,
"点击"元素此。

00:30:33.900 --> 00:30:36.420
好。所以现在这个

00:30:36.420 --> 00:30:42.030
我们只是打开设置菜单,

00:30:42.030 --> 00:30:44.265
只是因为我不想
浪费每个人的时间

00:30:44.265 --> 00:30:45.165
我们越来越近了

00:30:45.165 --> 00:30:49.455
因此,让我们在这里设置。

00:30:49.455 --> 00:30:52.660
好的,很好

00:30:53.900 --> 00:30:56.290
怎么了？

00:31:02.450 --> 00:31:05.700
所以我叫它。

00:31:05.700 --> 00:31:09.510
"选择菜单项目",但我没有
现在给它一个值。

00:31:09.510 --> 00:31:12.490
好。让我们这样做。

00:31:14.330 --> 00:31:17.100
还在运行吗？

00:31:17.100 --> 00:31:21.525
好。所以永远记得杀人
我忘记做的应用程序。

00:31:21.525 --> 00:31:24.090
因此,让我们开始吧。

00:31:24.090 --> 00:31:31.680
我认为这是最慢的部分

00:31:31.680 --> 00:31:33.165
只是等待发射。

00:31:33.165 --> 00:31:36.225
但除此之外
它变得超级快。

00:31:36.225 --> 00:31:38.430
那么我们现在要做的
非常快,我只是

00:31:38.430 --> 00:31:40.470
向您展示如何设置页面,因为

00:31:40.470 --> 00:31:44.520
这通常是所有你
需要了解什么是

00:31:44.520 --> 00:31:49.540
发生,只是了解。

00:31:51.860 --> 00:31:55.965
让我猜猜,我的索引
是零而不是 1。

00:31:55.965 --> 00:31:58.200
是的,我的索引是零而不是 1。

00:31:58.200 --> 00:32:03.580
好。让我们分开吧。

00:32:04.160 --> 00:32:08.160
我们开始吧。我想要的
验证它是一、二张幻灯片。

00:32:08.160 --> 00:32:11.280
好。它将进入此页面。

00:32:11.280 --> 00:32:13.905
但是我们要做的是
实际上写测试,

00:32:13.905 --> 00:32:16.290
我想测试一下
正在播放屏幕。

00:32:16.290 --> 00:32:22.150
因此,让我们试试这个。

00:32:23.030 --> 00:32:26.140
我们进去吧

00:32:32.330 --> 00:32:38.710
打开正在播放,当我
在页面上打开一个 Repl。

00:32:42.650 --> 00:32:46.515
好。所以,在启动的时候

00:32:46.515 --> 00:32:49.095
如何从新页面开始？

00:32:49.095 --> 00:32:54.120
"添加新页面"。因此,让我们
称之为"正在播放页面"。

00:32:54.120 --> 00:32:57.270
大家好学习。这
是每个人都会做的。

00:32:57.270 --> 00:33:00.749
下一步,我们将
从 BasePage 继承,

00:33:00.749 --> 00:33:02.010
但它会像,"不,

00:33:02.010 --> 00:33:03.435
您需要有平台查询。

00:33:03.435 --> 00:33:06.490
好。引发平台查询。

00:33:09.530 --> 00:33:13.560
所以在我的页面上
它准备去。

00:33:13.560 --> 00:33:17.310
所以我们可以把它放回这里

00:33:17.310 --> 00:33:18.990
得到字体。

00:33:18.990 --> 00:33:21.750
好。所以通常我做的是

00:33:21.750 --> 00:33:25.980
我不记得这个平台
特点和东西看起来像。

00:33:25.980 --> 00:33:30.645
我去打开一个样本,或我
只是进入已经制作的页面。

00:33:30.645 --> 00:33:34.515
我决定复制这个
因为我喜欢作弊

00:33:34.515 --> 00:33:39.030
所以在这个命令下
这里把它放在这里。

00:33:39.030 --> 00:33:40.980
好吧。所有你必须
现在做的是进来,只是

00:33:40.980 --> 00:33:43.395
更改特征值
每个平台。

00:33:43.395 --> 00:33:46.290
让我们来看看它是什么
可能适用于 iOS。

00:33:46.290 --> 00:33:49.150
让我们看看我们这里有什么。

00:33:49.700 --> 00:33:53.745
我们有一堆屏幕。

00:33:53.745 --> 00:33:55.890
但我有页面ID说

00:33:55.890 --> 00:33:58.050
现在玩Page,这是有希望的。

00:33:58.050 --> 00:33:59.310
所以,我要抓住这个。

00:33:59.310 --> 00:34:03.490
因此,对于 iOS,我要
把它作为一个页面的特点。

00:34:06.250 --> 00:34:10.120
退出在这里。

00:34:10.120 --> 00:34:13.020
我要拉起安卓系统

00:34:13.020 --> 00:34:18.510
让我们做同样的
Android的事情。

00:34:18.510 --> 00:34:21.855
所以安卓设置。

00:34:21.855 --> 00:34:25.120
让我运行这个测试。

00:34:25.250 --> 00:34:27.890
因此,初始设置。

00:34:27.890 --> 00:34:30.320
我不只是做字面上
如果我在做,我会做什么

00:34:30.320 --> 00:34:32.960
这我自己在我的办公桌上。

00:34:32.960 --> 00:34:34.430
所以,我迈出的第一步

00:34:34.430 --> 00:34:35.690
启动几次,

00:34:35.690 --> 00:34:38.045
完成所有页面特征。

00:34:38.045 --> 00:34:40.900
一旦我有页面特征值,

00:34:40.900 --> 00:34:42.810
我需要解决这个问题
对于安卓清楚,

00:34:42.810 --> 00:34:43.935
它不是向右滑动。

00:34:43.935 --> 00:34:48.405
但这里有一棵树

00:34:48.405 --> 00:34:51.850
让我们看看发生了什么
在安卓。我看看。

00:34:51.890 --> 00:34:55.830
所以有标签。
因为我又回来了

00:34:55.830 --> 00:35:00.330
好。所以有迷你播放器,
有电流歌,电流艺术家。

00:35:00.330 --> 00:35:02.280
我再次看到一个开放页。

00:35:02.280 --> 00:35:05.910
所以,让我们只是借用
同样的事情对两者。

00:35:05.910 --> 00:35:09.180
既然已经成立
我们可以开始把

00:35:09.180 --> 00:35:12.270
元素的某些值
在那个屏幕上。

00:35:12.270 --> 00:35:17.235
再回去,我们抓紧
使用的别名。

00:35:17.235 --> 00:35:20.265
现在播放页面,让我们
进来好吧。

00:35:20.265 --> 00:35:23.370
因此,现在玩页有
我看到的一堆按钮。

00:35:23.370 --> 00:35:26.460
让我们来看看这里发生了什么。

00:35:26.460 --> 00:35:28.710
所以有"播放"按钮,

00:35:28.710 --> 00:35:30.180
有向上和竖起大拇指,

00:35:30.180 --> 00:35:33.180
竖起大拇指,有
"迷你播放器"。

00:35:33.180 --> 00:35:36.360
我要尝试的是

00:35:36.360 --> 00:35:38.370
让我们看看,如果你能得到
到"随机"按钮。

00:35:38.370 --> 00:35:40.650
这就是这里的按钮。

00:35:40.650 --> 00:35:42.630
所以有洗牌,
有重复播放。

00:35:42.630 --> 00:35:45.210
对。现在,如果你注意到这一点
是我见过的另一个问题

00:35:45.210 --> 00:35:48.075
所以你可能并不总是
控制源代码,

00:35:48.075 --> 00:35:49.350
你可能并不总是
能够进去

00:35:49.350 --> 00:35:50.640
并添加自动化功能,

00:35:50.640 --> 00:35:53.055
或添加事物的物理名称。

00:35:53.055 --> 00:35:54.900
例如,如果我在这里看,

00:35:54.900 --> 00:35:58.125
我所看到的是
底部网格控件。

00:35:58.125 --> 00:36:02.280
我没有任何具体的名字
任何这些按钮存在。

00:36:02.280 --> 00:36:04.440
我认为这是一个自定义控件
使用一目了然。

00:36:04.440 --> 00:36:07.510
所以我没有它的价值。

00:36:07.610 --> 00:36:11.895
最好的办法是
继续向下钻。

00:36:11.895 --> 00:36:13.604
所以我要

00:36:13.604 --> 00:36:15.060
让我们从这里开始查询。

00:36:15.060 --> 00:36:18.210
因此,这被称为
底部网格控件。

00:36:18.210 --> 00:36:22.395
所以,我要看看是什么
里面的孩子第一。

00:36:22.395 --> 00:36:27.870
我想我看到一,二,三,四。

00:36:27.870 --> 00:36:29.400
不,有很多
在那里的东西。

00:36:29.400 --> 00:36:31.320
好。让我们来闪现这些,因为我

00:36:31.320 --> 00:36:34.150
不知道这里有什么
有这么多东西

00:36:37.950 --> 00:36:41.890
好。一,二,三,四,好

00:36:41.890 --> 00:36:45.235
所以到底部网格是
整个底部区域

00:36:45.235 --> 00:36:46.990
我不需要整个底部区域。

00:36:46.990 --> 00:36:50.140
所以我要用最后一个孩子

00:36:50.140 --> 00:36:53.650
让我们看看是什么
在,在那里,我们去。

00:36:53.650 --> 00:36:55.450
我们现在越来越近了,对吧？

00:36:55.450 --> 00:37:00.780
因此,它并不总是要
是一个快乐的情况,你可以

00:37:00.780 --> 00:37:02.880
写那些完美的人
你知道维护

00:37:02.880 --> 00:37:06.765
一组完美的唯一标识符
对于屏幕上的元素。

00:37:06.765 --> 00:37:08.790
我不会太决定这个。

00:37:08.790 --> 00:37:11.790
拥有任何东西和
只获得基本测试

00:37:11.790 --> 00:37:13.470
去是比更重要

00:37:13.470 --> 00:37:15.545
试图找到唯一的标识
任何元素。

00:37:15.545 --> 00:37:17.740
所以只要测试不中断,

00:37:17.740 --> 00:37:20.530
在这一点上有点脆弱
我会同意,但然后

00:37:20.530 --> 00:37:23.470
当你可以参加这个测试和
向团队展示它,就像

00:37:23.470 --> 00:37:25.315
"嘿,这真的很有用。

00:37:25.315 --> 00:37:27.115
让我们开始添加,

00:37:27.115 --> 00:37:28.390
事实上,这些将是

00:37:28.390 --> 00:37:29.770
测试,让我们更留心,

00:37:29.770 --> 00:37:31.660
向 其添加更多名称
这些事情在未来。

00:37:31.660 --> 00:37:33.280
所以,让我们进来。

00:37:33.280 --> 00:37:35.425
我想那是第二个按钮

00:37:35.425 --> 00:37:38.020
它会验证。是的。就是这样。

00:37:38.020 --> 00:37:42.055
所以下一步从字面上将是,

00:37:42.055 --> 00:37:44.080
我可以进去

00:37:44.080 --> 00:37:46.090
这就是美
进来,对吧？

00:37:46.090 --> 00:37:49.270
所以,这是,所以让我们叫它。

00:37:49.270 --> 00:37:58.040
因此,有随机播放按钮
还有,我们走

00:37:59.460 --> 00:38:02.395
重复按钮上是什么？

00:38:02.395 --> 00:38:04.150
他们是隔壁的
互相,对不对？

00:38:04.150 --> 00:38:06.550
因此,让我们优化设置。

00:38:06.550 --> 00:38:09.430
所以,这是你初始化的地方

00:38:09.430 --> 00:38:13.435
的查询
页面上的每个控件。

00:38:13.435 --> 00:38:18.235
所以这是跨平台
页面对象的一部分。

00:38:18.235 --> 00:38:21.310
如果查询是
两个平台上相同,

00:38:21.310 --> 00:38:23.395
目前的一个很好的例子。

00:38:23.395 --> 00:38:25.600
我不认为会
相同的每一个只是因为我们

00:38:25.600 --> 00:38:28.240
不得不通过像
一件东西的床和孩子,

00:38:28.240 --> 00:38:32.230
iOS 和 UI 布局中
安卓系统可以有点不同。

00:38:32.230 --> 00:38:33.700
因此,这是一个很好的候选人比没有。

00:38:33.700 --> 00:38:36.940
这可能不会
成为共享价值,

00:38:36.940 --> 00:38:39.730
但像
正在播放交易。

00:38:39.730 --> 00:38:41.320
因为它是一样的
在两个平台上,

00:38:41.320 --> 00:38:43.105
你可以只是字面上
进来只是去像

00:38:43.105 --> 00:38:46.405
随机播放按钮,然后只是
将查询删除在此处,

00:38:46.405 --> 00:38:47.710
而这只是意味着,哦,使用

00:38:47.710 --> 00:38:50.005
相同的查询值
什么平台。

00:38:50.005 --> 00:38:52.450
但如果每个都不同,

00:38:52.450 --> 00:38:53.875
让我们把它分开。

00:38:53.875 --> 00:38:56.875
所以,如果在两个平台上,

00:38:56.875 --> 00:38:58.885
你将如何做有

00:38:58.885 --> 00:39:00.460
iOS 中的某些不同设置和

00:39:00.460 --> 00:39:02.575
安卓和公司类似的概念。

00:39:02.575 --> 00:39:05.065
所以这就是
随机播放按钮看起来像,

00:39:05.065 --> 00:39:08.725
我们有重复按钮

00:39:08.725 --> 00:39:12.955
和索引
只是虽然,

00:39:12.955 --> 00:39:14.410
我想我换掉索引了。

00:39:14.410 --> 00:39:17.935
所以这是一个,这是
二,[听不见]繁荣。

00:39:17.935 --> 00:39:20.560
就是这样。好。你
可以在这一点上

00:39:20.560 --> 00:39:23.725
实际上只是继续和
放下页面方法。

00:39:23.725 --> 00:39:26.650
所以喜欢这个页面
现在玩,

00:39:26.650 --> 00:39:34.790
这将是按
说"随机播放按钮"。

00:39:36.720 --> 00:39:40.915
我要还了这个

00:39:40.915 --> 00:39:42.940
只因为这是
一个行动,不是

00:39:42.940 --> 00:39:44.695
导航接近本页的方式。

00:39:44.695 --> 00:39:46.150
我要留下来,我可以

00:39:46.150 --> 00:39:48.670
继续做
本页上的更多内容。

00:39:48.670 --> 00:39:51.370
在此之后,我可以去
单击"上"按钮。

00:39:51.370 --> 00:39:53.050
我可以单击共享按钮。

00:39:53.050 --> 00:39:55.255
我可以去点击省略号按钮。

00:39:55.255 --> 00:39:57.310
这就是我

00:39:57.310 --> 00:39:59.290
在行动前谈论
留在页面上,

00:39:59.290 --> 00:40:00.865
使其返回页面类型本身。

00:40:00.865 --> 00:40:03.325
因为当你写一个测试时,

00:40:03.325 --> 00:40:06.460
它可以串起来。

00:40:06.460 --> 00:40:08.320
所以另一件好事
我喜欢做的是

00:40:08.320 --> 00:40:10.210
我总是喜欢等待
对于元素

00:40:10.210 --> 00:40:12.775
出现在我做任何行动之前。

00:40:12.775 --> 00:40:16.510
就像自信一样
真实或自信可见,

00:40:16.510 --> 00:40:17.680
但我只是试图用重量

00:40:17.680 --> 00:40:19.390
元素只是因为
它有一个内置

00:40:19.390 --> 00:40:22.870
已重试机制
从 UI 测试烘焙到它。

00:40:22.870 --> 00:40:25.720
让它超级好。
让我的考试感觉

00:40:25.720 --> 00:40:28.915
更像我觉得
更好的它之前。

00:40:28.915 --> 00:40:30.760
只是为了确保元素
实际上已经

00:40:30.760 --> 00:40:33.115
在屏幕上呈现
在我点击它之前。

00:40:33.115 --> 00:40:37.690
所以,让我们来看看什么是

00:40:37.690 --> 00:40:43.450
卫兵按重复,因为

00:40:43.450 --> 00:40:45.760
我想告诉你什么
字符串测试看起来像。

00:40:45.760 --> 00:40:48.085
因此,让我们返回这个。

00:40:48.085 --> 00:40:53.720
再次,应用程序。等待重复按钮,

00:40:54.120 --> 00:41:00.805
和应用程序。点按"重复按钮"。

00:41:00.805 --> 00:41:04.825
好吧。所以现在做
我准备好了吗？

00:41:04.825 --> 00:41:08.020
下一步字面上
左做,我会

00:41:08.020 --> 00:41:10.480
再次重新启动重拉普
但这次对于iOS来说

00:41:10.480 --> 00:41:12.670
我所要做的就是
对于 iOS,它是去和

00:41:12.670 --> 00:41:15.265
查找的查询
这两个按钮。

00:41:15.265 --> 00:41:17.260
就是这个,我的页面被设置了。

00:41:17.260 --> 00:41:19.240
这就是你所有需要的
福尔所以这只是

00:41:19.240 --> 00:41:20.860
所有你需要的初始买入。

00:41:20.860 --> 00:41:22.330
这是所有你花的时间

00:41:22.330 --> 00:41:23.815
第一次只是设置这些,

00:41:23.815 --> 00:41:25.120
后,他们
超级简单,因为

00:41:25.120 --> 00:41:26.725
现在我要加一个测试。

00:41:26.725 --> 00:41:28.240
让我们添加一个全新的测试。

00:41:28.240 --> 00:41:32.630
因此,让我们现在调用它闪烁测试。

00:41:32.640 --> 00:41:37.180
我要进来

00:41:37.180 --> 00:41:38.890
添加 BaseTestFIXTURE。

00:41:38.890 --> 00:41:43.130
这需要平台。

00:41:44.430 --> 00:41:49.760
去,添加这个,

00:41:50.310 --> 00:41:54.640
平台,繁荣。就是这样。

00:41:54.640 --> 00:41:56.950
您已设置。要编写测试,

00:41:56.950 --> 00:41:58.930
让我们在测试标签,

00:41:58.930 --> 00:42:00.940
这里没有 N 单位。

00:42:00.940 --> 00:42:02.890
因此,让我们拉N单位,之后。

00:42:02.890 --> 00:42:07.105
如此公开的空白。我们来称呼它吧

00:42:07.105 --> 00:42:12.760
XamDevSummit测试,因为我是
伟大的名称。好吧。

00:42:12.760 --> 00:42:16.000
所以来到新的主页,

00:42:16.000 --> 00:42:18.970
然后你想
立即打开"正在播放"。

00:42:18.970 --> 00:42:22.240
繁荣,就到它了。那是
我的第一个行动。接下来的事情。

00:42:22.240 --> 00:42:23.560
现在我已经打开正在播放了,

00:42:23.560 --> 00:42:24.730
我在"正在播放"页上。

00:42:24.730 --> 00:42:28.690
所以新的现在玩页面。什么？

00:42:28.690 --> 00:42:32.890
因此,让我们按重复,然后
我想继续做动作

00:42:32.890 --> 00:42:38.020
然后我要按
"随机播放"按钮。就是这样。

00:42:38.020 --> 00:42:41.740
因此,您的 UI 测试类似于
流动和去和运行

00:42:41.740 --> 00:42:46.510
通过和维护它

00:42:46.510 --> 00:42:48.520
现在往前走,
想想看

00:42:48.520 --> 00:42:50.050
如果你回来后,一对夫妇

00:42:50.050 --> 00:42:52.240
几天或几个月
你读了这个测试

00:42:52.240 --> 00:42:53.320
你会说,"哦,好吧,

00:42:53.320 --> 00:42:55.510
是的,我正在测试
状态的功能。

00:42:55.510 --> 00:42:57.940
没有什么是模棱两可的。什么
很奇怪,这一切都有道理。

00:42:57.940 --> 00:43:02.800
这是可读的。是的。因此,它是
一个框架,我们使用相当多的。

00:43:02.800 --> 00:43:05.290
很受追捧
我的团队,我们已经

00:43:05.290 --> 00:43:08.200
一些好的反馈分享
它与其他人。

00:43:08.200 --> 00:43:12.475
所以,这就是字面上
实现它看起来像。

00:43:12.475 --> 00:43:14.935
我还剩下什么？

00:43:14.935 --> 00:43:17.485
好的,是的所以我想
快回去

00:43:17.485 --> 00:43:19.600
我现在已经报道了很多
当我谈论它的时候

00:43:19.600 --> 00:43:23.815
但只是其他有用的 UI 测试提示。

00:43:23.815 --> 00:43:25.570
再次测试真实设备,像我这样

00:43:25.570 --> 00:43:28.135
现在,它超级有帮助。

00:43:28.135 --> 00:43:30.370
如果在测试中放置断点

00:43:30.370 --> 00:43:32.215
你想知道如何
击中这些断点。

00:43:32.215 --> 00:43:34.000
所以,如果你只是双击
并运行一个测试,

00:43:34.000 --> 00:43:35.380
它不会击中那些。

00:43:35.380 --> 00:43:37.330
右键单击并调试,

00:43:37.330 --> 00:43:39.760
然后它就会开始
击中你的断点。

00:43:39.760 --> 00:43:41.590
我向你展示了使用语句。

00:43:41.590 --> 00:43:45.145
我带你看了测试案例
和类别。

00:43:45.145 --> 00:43:50.410
这只是其他最佳实践
我们试图分享,

00:43:50.410 --> 00:43:52.390
保持它,每一个荒凉

00:43:52.390 --> 00:43:54.580
在其状态内独立
是个好做法。

00:43:54.580 --> 00:43:57.370
不要绑链活动
因为假设一个测试失败,

00:43:57.370 --> 00:43:58.780
你不想像
其他一切失败。

00:43:58.780 --> 00:44:01.540
你想要一些有用的
信息出来。

00:44:01.540 --> 00:44:03.550
具有确定性。

00:44:03.550 --> 00:44:06.580
你可以把后门
你可以调用到

00:44:06.580 --> 00:44:07.900
您的应用,例如

00:44:07.900 --> 00:44:10.180
身份验证或您想要
以标记数据服务。

00:44:10.180 --> 00:44:13.190
后门是
一件好事情要研究。

00:44:13.200 --> 00:44:16.090
还有什么？尽量不要循环。

00:44:16.090 --> 00:44:20.290
使用良好的断言,所以
类元素是可见的,

00:44:20.290 --> 00:44:21.430
元素可见的重量,

00:44:21.430 --> 00:44:22.630
重量元素消失了。

00:44:22.630 --> 00:44:24.850
[听不见]非常适合动画。

00:44:24.850 --> 00:44:26.290
所以,如果你有
过渡动画,

00:44:26.290 --> 00:44:27.850
把它远远地放远,等待

00:44:27.850 --> 00:44:30.040
没有元素是一个伟大的东西使用。

00:44:30.040 --> 00:44:32.320
避免线程.睡眠。

00:44:32.320 --> 00:44:34.015
这是最糟糕的事情,你可以。

00:44:34.015 --> 00:44:35.650
不要把线程.睡眠。

00:44:35.650 --> 00:44:38.380
同样,只是要小心,如果你循环。

00:44:38.380 --> 00:44:40.495
循环不是你的朋友。

00:44:40.495 --> 00:44:42.220
所以我加班了一会儿

00:44:42.220 --> 00:44:45.620
但我能很快做到
问题,所以问题。

00:44:46.230 --> 00:44:49.510
只要继续前进的麦克风,所以

00:44:49.510 --> 00:44:51.120
其他人
网上也能听到你的声音。

00:44:51.120 --> 00:44:52.690
所以当你提到后门时,

00:44:52.690 --> 00:44:54.955
你只是然后写
代码中的方法？

00:44:54.955 --> 00:44:57.700
* 是的,确切地说。所以你
想保留那些为iOS,

00:44:57.700 --> 00:44:58.945
将它们放入应用委托

00:44:58.945 --> 00:45:01.420
和安卓放置
你的主要活动

00:45:01.420 --> 00:45:03.430
然后你就可以调用
相同的字符串名称

00:45:03.430 --> 00:45:06.470
在你的测试中,你可以
做任何你想做的事

00:45:06.540 --> 00:45:09.070
* 所以对于报告,

00:45:09.070 --> 00:45:12.280
是否有任何未来的计划
制作一个可视化工具,

00:45:12.280 --> 00:45:14.575
就像我们对XML树一样？

00:45:14.575 --> 00:45:16.780
让我们来谈谈它。
来见我

00:45:16.780 --> 00:45:18.670
展位和我喜欢听到的想法。

00:45:18.670 --> 00:45:21.670
我听说过这个反馈
我想知道

00:45:21.670 --> 00:45:22.780
更多,我们可以看看

00:45:22.780 --> 00:45:24.895
做一些事情
像这样的东西,是的。

00:45:24.895 --> 00:45:27.220
• 另一个进入您的基页,

00:45:27.220 --> 00:45:29.665
你确实还了这个

00:45:29.665 --> 00:45:31.630
始终将页面返回错误。

00:45:31.630 --> 00:45:34.420
所以我们不必等待吗？

00:45:34.420 --> 00:45:37.630
所以,如果你正在做数据加载
你的微调器在之前就起来了

00:45:37.630 --> 00:45:38.860
我们进入页面,我们有

00:45:38.860 --> 00:45:40.150
特别要为此做点什么？

00:45:40.150 --> 00:45:44.095
* 是。所以,你可以完全
把它扔到基页里。

00:45:44.095 --> 00:45:45.850
那只是一种方法
使用基页。

00:45:45.850 --> 00:45:47.110
我只想强调

00:45:47.110 --> 00:45:48.730
有共享的方法在那里。

00:45:48.730 --> 00:45:51.310
实际上,你可以只写
扩展或喜欢帮助程序,

00:45:51.310 --> 00:45:52.540
然后把类似的东西,

00:45:52.540 --> 00:45:53.950
你知道你
期待动画。

00:45:53.950 --> 00:45:55.990
所以就像,嘿,等等
旋转器离开。

00:45:55.990 --> 00:45:57.415
所以等待没有元素,

00:45:57.415 --> 00:46:00.820
并将 ID 放入微调器
或者只是使用微调器类,

00:46:00.820 --> 00:46:02.890
然后只是验证
微调器有

00:46:02.890 --> 00:46:05.050
走了,然后开始
做你的行动。是的。

00:46:05.050 --> 00:46:07.995
* 是的。最后一个问题也许
它不是真的在你的地区,

00:46:07.995 --> 00:46:09.360
但你截屏。

00:46:09.360 --> 00:46:11.070
你有什么可以做的吗？

00:46:11.070 --> 00:46:15.075
用于匹配屏幕截图
以前的测试,如,

00:46:15.075 --> 00:46:16.650
因为如果你正在做UI,

00:46:16.650 --> 00:46:18.120
你想知道
您的元素是

00:46:18.120 --> 00:46:20.160
仍然在屏幕上
而不是屏幕外,

00:46:20.160 --> 00:46:22.995
我不知道你能否
在报告中这样做。

00:46:22.995 --> 00:46:25.575
• 不,现在不。

00:46:25.575 --> 00:46:29.440
再一次,我听说过人们
想要一个工具,可以做到这一点。

00:46:29.440 --> 00:46:30.895
我觉得这也是个好主意。

00:46:30.895 --> 00:46:32.605
我唯一能想到的就是

00:46:32.605 --> 00:46:34.975
如果您上传这些测试
到应用中心,

00:46:34.975 --> 00:46:36.685
它为您生成这些报告。

00:46:36.685 --> 00:46:38.200
这就像手动检查,虽然

00:46:38.200 --> 00:46:39.910
没有自动的方法。

00:46:39.910 --> 00:46:42.370
也许你可以使用认知服务
并构建该工具,

00:46:42.370 --> 00:46:43.895
我很乐意帮你

00:46:43.895 --> 00:46:44.490
[ ] 好的。谢谢。

00:46:44.490 --> 00:46:44.990
* 是的。

00:46:44.990 --> 00:46:48.790
你好,我注意到
你的测试之一,你

00:46:48.790 --> 00:46:52.630
有一个拖动方法
一些硬编码的库伯内特斯。

00:46:52.630 --> 00:46:52.900
* 是的。

00:46:52.900 --> 00:46:54.100
* 这会给你问题

00:46:54.100 --> 00:46:55.180
不同大小[听不见]？

00:46:55.180 --> 00:46:57.565
* 它完全是和
不推荐的方式做到这一点。

00:46:57.565 --> 00:46:59.875
只是为了这个演示
我只是想刷卡

00:46:59.875 --> 00:47:01.090
我甚至没刷得那么好

00:47:01.090 --> 00:47:05.350
但真正理想的方式
这样做是再次查询

00:47:05.350 --> 00:47:07.390
该元素和使用
x 和 y 坐标

00:47:07.390 --> 00:47:09.880
因为这是一个迷你播放器
我有身份证

00:47:09.880 --> 00:47:11.770
所以,你应该在
良好做法是这样做,

00:47:11.770 --> 00:47:14.140
这就是我要做的事
做的实际代码。

00:47:14.140 --> 00:47:15.790
我想把这件事变成克兰西

00:47:15.790 --> 00:47:17.785
清理一下,让它看起来更漂亮。

00:47:17.785 --> 00:47:20.560
请进去看看
在,并给我的反馈

00:47:20.560 --> 00:47:23.140
或只是去和贡献
更多的代码在那里。所以,是的。

00:47:23.140 --> 00:47:24.310
谢谢

00:47:24.310 --> 00:47:27.100
* 所以,实际上有我
认为在我的校正器

00:47:27.100 --> 00:47:29.500
像轻扫功能
在那里你可以把。

00:47:29.500 --> 00:47:31.015
因此,请确保轻扫它。

00:47:31.015 --> 00:47:32.170
• 是的,您可以轻扫到它。

00:47:32.170 --> 00:47:34.165
您可以轻扫工具,

00:47:34.165 --> 00:47:36.370
采取,或者你可以把
在您想要的元素上

00:47:36.370 --> 00:47:39.010
目标或类似 x 和 y
您想要去的坐标。

00:47:39.010 --> 00:47:43.255
是的。好吧 就像
还有两个问题,我想是的。

00:47:43.255 --> 00:47:44.830
我们经常发现
当我们录制

00:47:44.830 --> 00:47:47.485
UI 测试需要超时,

00:47:47.485 --> 00:47:48.820
他们工作的伟大

00:47:48.820 --> 00:47:50.950
本地机器和
我们的生成服务器,但他们

00:47:50.950 --> 00:47:56.185
感觉持续缺席或
有办法吗？

00:47:56.185 --> 00:47:58.105
让我们来展台见我。

00:47:58.105 --> 00:48:00.325
我喜欢看到底是什么
正在进行。是的。

00:48:00.325 --> 00:48:05.800
• Xamarin UI 测试是否为
积极维护的框架-

00:48:05.800 --> 00:48:06.130
* 是。

00:48:06.130 --> 00:48:08.035
* - 因为我
听到别的东西。

00:48:08.035 --> 00:48:10.495
• 不,它是
积极工作。

00:48:10.495 --> 00:48:12.985
它只是更新到 UI 测试

00:48:12.985 --> 00:48:16.570
3.0,因为现在我们有
NUnit 支持 3.0。

00:48:16.570 --> 00:48:18.520
所以,是的,他们积极
工作。是的。

00:48:18.520 --> 00:48:19.015
谢谢

00:48:19.015 --> 00:48:21.565
"好的。这就是所有的问题
我现在可以拿去

00:48:21.565 --> 00:48:22.660
我会在展位

00:48:22.660 --> 00:48:23.980
所以请来找我

00:48:23.980 --> 00:48:25.585
问我所有其他问题
你有。

00:48:25.585 --> 00:48:28.240
我想查看任何 UI 测试代码
你需要帮助

00:48:28.240 --> 00:48:30.320
但非常感谢你

