首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Espresso 遇见 Android 单元测试

作者:施亮 团队:腾讯移动品质中心TMQ 引言 在Android单元测试中,不依赖Android环境的可以使用Junit。...如果依赖Android环境,但是没有UI相关或者UI比较简单(如点击按钮)的单元测试可以使用开源库Robolectric解决依赖问题,使测试运行在JVM上,而非模拟器上,大大提高测试运行效率。...Activity& Espresso Activity是承载UI控件的Android基本组件,Espresso则是可操作Activity的Google原生UI自动化框架。...工程中使用Espresso实现自动化测试只需要三步: 1、添加依赖: androidTestCompile 'com.android.support.test.espresso:espresso-core...因为Android更改UI只能在UI线程中进行,所以改变控件属性的代码只能写在Activity的代码中,而不是Espresso测试代码中。

2.4K10

Android P 第二个测试版本请求网络 CLEARTEXT communication to host not permitted by network

问题: 由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。...如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加载失败,https 不受影响。...为此,OkHttp3 做了检查,所以如果使用了明文流量,默认情况下,在 Android P 版本 OkHttp3 就抛出异常: CLEARTEXT communication to " + host +...Platform.get().isCleartextTrafficPermitted(host)) { throw new RouteException(new UnknownServiceException...( "CLEARTEXT communication to " + host + " not permitted by network security policy"));

19830

Android P上使用Http

: java.io.IOException: Cleartext HTTP traffic to **** not permitted //使用OkHttp时遇到的异常 java.net.UnknownServiceException...: CLEARTEXT communication ** not permitted by network security policy 这是由于我们所使用的接口并非https导致的: Google...表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行...Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport Layer Security)传输层安全协议,而 Android Nougat 和 Oreo...android:networkSecurityConfig="@xml/network_security_config" ... /> 参考链接

2K20

详解Android版本适配:9.0 Pie

限制 HTTP 网络请求 Android 9.0 中限制了 HTTP(明文传输)网络请求,若仍继续使用HTTP请求,则会在日志中提示以下异常(只是无法正常发出请求,不会导致应用崩溃): java.net.UnknownServiceException...: CLEARTEXT communication to xxx not permitted by network security policy 适配的方法如下: 第一种 在资源目录中新建一个 xml...blacklist(黑名单):无论 targetSdkVersion 为多少,只要应用运行在 Android 9.0 平台上,访问此名单中的接口都会受限 3.2 如何测试应用是否使用非 SDK 接口 可以通过以下方式进行测试...(详情请至官方文档): 使用 Android 9.0 或更高版本的设备调试应用 使用 StrictMode API 进行测试 使用 veridex 工具对应用进行扫描 建议使用第三种方式,该工具的扫描结果会列出应用对于三个限制名单中的接口的调用细节...Intent 标志 FLAG_ACTIVITY_NEW_TASK,否则会启动失败并抛出以下异常 android.util.AndroidRuntimeException: Calling startActivity

97020

Gradle For Android(6)--测试单元

如果单元测试失败了,那么Gradle就会在命令行打印出来失败日志。如果成功了,那么Gradle会打印出来BUILD SUCCESSFUL的日志。 如果某个test任务失败了,整个过程会立刻终止。...这个Report可以帮助我们查看哪儿失败了,并且对于自动化测试非常有用。Gradle会为每一个Build Variant执行测试任务构建一个Report。...例如,你可以创建一个功能性的测试:点击一个Button打开一个新的Activity。Android提供了一些功能性测试的框架,但是最简单的还是使用Espresso框架。...Espresso Espresso Library通过Android Support仓库提供。所以可以通过SDK Manager安装。为了在设备上进行测试,我们需要定义一个test runner。...'com.android.support.test.espresso:espresso-core:2.2' androidTestCompile 'com.android.support.test.espresso

1.7K40

Android 单元测试和 UI 测试初步实践

通常大型项目都是通过黑盒测试等方式来提供质量相关的保障,但同时笔者认为也需要 Android 端的单元测试以及能自动在 Android 平台上运行的 UI 测试,这几种测试有以下几个优势: 更早发现代码中存在的...Android 测试代码位置 在 Android Studio 中新建新的项目时,它已自动为两种测试类型创建了对应的代码目录: 单元测试用例:位于 module-name/src/test/java 目录下...至此,一个 Android 的单元测试用例编写完成。通过 Android Studio 直接运行此单元测试用例,结果如下: ?...,由于这里是需要 Android 环境且使用到 Espresso 框架,所以 @RunWith 选择 AndroidJUnit4 类。...至此,一个 Android 的 UI 测试用例编写完成。通过 Android Studio 直接运行此用例,结果如下: ?

2K10

Android10填坑适配指南(实际经验代码)

Android10填坑适配指南,包含实际经验代码,绝不照搬翻译文档 1.Region.Op相关异常:java.lang.IllegalArgumentException: Invalid Region.Op...Region.Op.XOR); } 2.明文HTTP限制 当targetSdkVersion =Build.VERSION_CODES.P 时,默认限制了HTTP请求,并出现相关日志: java.net.UnknownServiceException...: CLEARTEXT communication to xxx not permitted by network security policy 第一种解决方案:在AndroidManifest.xml...param sourceFile 源文件 * @param saveFileName 保存的文件名 * @param saveDirName picture子目录 * @return 成功或者失败...因此如果还需要监听剪切板,可以使用应用生命周期回调,监听APP后台返回,延迟几毫秒访问剪切板,再保存最后一次访问得到的剪切板内容,每次都比较一下是否有变化,再进行下一步操作。

95821
领券