先看一下什么是SnackBar,如下图: ? image SnackBar是用户操作后,显示提示信息的一个控件,类似Toast,会自动隐藏。它还可以添加操作按钮,等等。...SnackBar是通过Scaffold的showSnackBar方法来显示的。所以要显示一个SnackBar,要先拿到Scaffold。...body: new SnackBarPage(), ); 显示SnackBar 首先创建一个SnackBar,再通过Scaffold的方法来显示。...final snackBar = new SnackBar(content: new Text('这是一个SnackBar!'))...; Scaffold.of(context).showSnackBar(snackBar); 给SnackBar添加一个操作按钮 有时候,我们可能会想在显示的提示信息上添加一些操作。
Snackbar是介于Toast与Dialog之间的一个控件,既可以像Toast一样自动消失,也可以像Dialog一样交互消失。...使用与Toast相似: Snackbar.make(view, "已加入行程", Snackbar.LENGTH_SHORT).show(); 第一个参数是view,任意都行,但是google官方建议传入...CoordinatorLayout,一来在Snackbar显示的时候可以右滑移除,二来在Snackbar显示的时候布局会自动变 第二个参数是message,即提示的内容 第三个参数是显示的时长,Snackbar.LENGTH_SHORT...短时间显示且自动消失,Snackbar.LENGTH_LONG 长时间显示且自动消失,Snackbar.LENGTH_INDEFINITE 不消失显示 用在加了Action的情况下,在用户点击之后再消失...高级一点的使用(改颜色,加Action,加回调): final Snackbar mSnackbar = Snackbar.make(view, "已加入行程", Snackbar.LENGTH_INDEFINITE
一、Snackbar 基本使用 先在app build.gradle 中添加依赖: implementation "com.google.android.material:$latest_version..." 然后在代码中使用(简单使用跟Toast是类似的): Snackbar.make(binding.root, "This is a snackbar message", Snackbar.LENGTH_SHORT...666~ 二、给 Snackbar 添加点花样 上述只是最最最简单的使用 Snackbar,如果只是弹出提示,那显然 Toast 已经够了,它肯定是提供了 Toast 不具备的功能的,接下来开始实践一下吧...(): 给 Snackbar Action 文字设置颜色 setTextColor(): 给 Snackbar 文字设置颜色 Snackbar.make(binding.root, "Show some...Snackbar Material Design 规范: https://m2.material.io/components/snackbars 我们在设计之初也应该参考下它的规范,避免一些不恰当设计使用
我们先来感受一下它的强大吧,请看效果图: 基本使用方法 1、简单使用 上面的效果图代码实现: import android.support.design.widget.Snackbar...} } 其实使用的核心代码就一句...,Snackbar.LENGTH_SHORT).show(); 使用起来类似于Toast,但也有与Toast的不同之处,Toast的使用: Toast.makeText(MainActivity.this...Snackbar snackbar = Snackbar.make(frameLayout, "Hello SnackBar!"...Snackbar使用源码下载:http://download.csdn.net/detail/u012810020/9594379
不扯犊子直接说吧,第一点,用数据、用茫茫多的测试用例去告诉使用者,你的程序是多么鲁棒健壮;第二点,把它作为一种素养去培养吧,当你按照一系列规范去做事,那么你做出来的东西,我想是有品质在的。...jest的安装 在确保你的电脑装有node环境的情况下,我们通过mkdir jest-study && npm init -y来初始化项目,然后我们通过cd jest-study进入到这个目录。...通用写法 "test": "jest" : 这个比较傻瓜式,当执行npm run test这条命令是会去对test目录下的所有文件进行相应的jest测试。..."test:help": "jest --help": 顾名思义,如果你不想全局安装jest,又想看看到底有哪些cli命令的话,就它了。...计算器 这里模拟了笔者手机上的计算器,实现了加减乘除清零计算等功能。
webpack.config 自动编译ts+css tsconfig.config ts的配置文件 tslint.json tslint的配置文件 jest.config 配置jest .babelrc...通过官网的Getting started 我们可以在最下方找到 ts-jest 不难理解,我们需要配的其实就是jest加载到什么样类型的文件,使用什么预处理来处理文件。...如果是js文件我通过babel-jest处理,css则使用jest-css-modules。假如没有这些配置,那import了你的库,库里有引入了高特性的js文件,或者css文件就会编译报错。...我选择了jest,jest本身是fb出的,对于react非常友好。本身也做了许多环境上的封装切换jsdom环境或者node环境非常方便。我最后选择了这个。...思路是:模拟用户操作,再通过Dom进行判断是否渲染正确。
Snackbar是谷歌集成的design包下的一个用于消息提示的控件,介于Dialog和Toast之间,结合了两者的优点,又解决了Dialog强提示和Toast无法交互的缺点,使用方法也很简单,首先我们需要引入...Snackbar.gif 我们需要给与用户点击反馈后才能消除提示的情况下,可以这样使用 public void click(View view) { Snackbar.make(...return fallback; } findSuitableParent方法很有意思,它会不断的寻找父容器 如果是CoordinatorLayout的话,就直接返回,所以说我们使用...= null && this.callback.get() == callback; } } 这边将mManagerCallback使用了弱引用,我们继续往下,来到showNextSnackbarLocked...Handler,所以防止内存泄漏,使用了弱引用,再来看sHandler对象 static { sHandler = new Handler(Looper.getMainLooper
Google在Android中做好了一个控件SnackBar可以简单地完成这个功能。...要想支持Swipe手势的话,这个view需要是一个CoordinatorLayout(在Android Support Library里面的控件) 使用方法: @Override...here is your code } }).show(); } 使用起来是比较简单的...其中有一些值得注意的东西: 1.SnackBar的实现方式其实是addView,因此,它的父控件不能是ScrollView这样只允许有一个子控件的控件。 ...2.SnackBar.show()的时候,要注意先把Keyboard.hide()了。不然,键盘就会遮住SnackBar。 3.字如果想换颜色要使用SpannableString。
Jest 默认使用 Jasmine 语法,支持直接使用 Promise 和 async/await 进行异步测试,支持对 React 组件进行快照监控, 扩展和集成 Babel 等常用工具集也很方便。...我们只要稍作加工,就可以指定各个文件的行为,并模拟我们想要的情况来进行不同的测试,例如本例中控制 fetchUser 的返回。...而在最后的 DOM 操作上由于有 JSDOM 模拟浏览器环境,我们可以指定不去 mock jQuery,让其正常执行,并且还能用来辅助测试。 ....例如使用 jest.useFakeTimers() 把遇到的计时器挂起,在必要时再使用 jest.runOnlyPendingTimers() 执行掉已经挂起的计时器。...异步支持 如果有使用过 node-tap 之类的老测试框架,在遇到异步情况时候肯定感受过麻烦了。现代的测试框架对异步的支持都是必需的。
因为Toast与Dialog各有一定的不足,使用Toast的时候, 用户无法交互;使用Dialog:用户可以交互,但是体验会打折扣,会阻断用户的连贯性操作;但是使用Snackbar既可以做到轻量级的用户提醒效果...,又可以有交互的功能,本博客将会从SnackBar的使用和源码分析两个方面进行介绍。...SnackBar的使用 SnackBar的使用十分简单,其实和Toast的使用方法差不多,我们写一个很简单的例子,来看一下SnackBar的使用,布局上有一个按钮,点击后弹出SnackBar,弹出的逻辑如下..." /> 在这里我们可以学到2点,一是如何引用某个类里面的内部类,就是通过class=“”,第二点就是自定义控件的第二种引用方法,使用View标签,然后内部使用class进行引用。...Snackbar的布局里面果然是使用了这个布局,如果我们要改变布局的样式,我们就修改这个文件里面的相关属性就可以了,就比如这里的textAppearance。
要使用Snackbar,需要在项目的build.gradle中添加依赖 dependencies { compile 'com.android.support:design:23.4.0' } Snackbar...的使用方法和Toast很相似 Snackbar.make(mOpenTv, "消息内容", Snackbar.LENGTH_SHORT) .setAction("确定", new View.OnClickListener...需要在布局文件中使用CoordinatorLayout作为根布局 ?...建议要使用Snackbar的时候最好是以CoordinatorLayout作为根布局,如果以其它RelativeLayout,LinearLayout等作为根布局的话,会出现以下这种情况 ?...FloatingActionButton被遮到了,使用CoordinatorLayout作为根布局可以避免这种情况 ? Snackbar只能在底部显示吗?
句法来验证不同的内容; 测试异步代码:支持承诺(promise)数据类型和异步等待async / await功能; 模拟函数:可以修改或监查某个函数的行为; 手动模拟:测试代码时可以忽略模块的依存关系;...此函数可以简单使用下面方法mock,并且jest提供一些方法可以确保查看mock函数被调用的情况: ?...: 2.2.1 使用jest.mock自动mock ?...此部分我们使用下面的类来举例: ? 使用下列用例check下mock的执行情况: ? 2.3.1 jest.mock自动mock类所在的模块, 类和类的方法也自动被mock。 ?...对于比较复杂的类和接口,如果自动mock不能完成覆盖到的话,建议结合使用jest.mock和jest.fn().mockImplementation,或者可以使用jest.mock完全自己mock。
视图层(Activity 或者 Fragment)与 ViewModel 层进行通讯的一种便捷的方式就是使用 LiveData 来进行观察。...但是,有一些数据只会消费一次,就像是 Snackbar 消息,导航事件或者对话框。 ? 这应该被视为设计问题,而不是试图通过架构组件的库或者扩展来解决这个问题。...使用 LiveData 来解决事件 这种方法来直接的在 LiveData 对象的内部持有 Snackbar 消息或者导航信息。...✔️ 推荐: 使用事件包装器 在这种方法中,您可以明确地管理事件是否已经被处理,从而减少错误。...使用事件包装器,您可以将多个观察者添加到一次性事件中。 ---- 总之:把事件设计成你的状态的一部分。使用您自己的事件包装器并根据您的需求进行定制。 银弹!
2、springboot默认使用spring-data操作elasticsearch,也可以使用jest操作elasticsearch。...依赖,并添加一下依赖: io.searchbox jest...依赖,我使用的elasticsearch版本是2.4.9。...4、进行测试: 首先要在application.properties中配置连接地址,否则不会启动jest。...spring.elasticsearch.jest.uris=192.168.124.22:9200 我这个版本的这个配置被移除了。。。。,接下去测试不了了,还是写下测试的代码。
/coding,不如,给它搞个加强版,结合Typescript和Jest https://jestjs.io/搞一个刷题环境https://zhengjiangtao.cn/coding-ts/,下面是我的一些使用心得...环境搭建 前期工作 这里统一用yarn https://yarnpkg.com/来进行相关的npm 包https://www.npmjs.com/安装与维护,使用其他安装管理工具的参照着这个改吧。...的开发环境依赖 yarn add jest ts-jest @types/jest -D 配置jest.config.js /** @type {import('ts-jest/dist/types'...", "test:help": "jest --help", "test:debug": "jest --debug", "test:verbose": "jest --verbose...", "test:init": "jest --init", "test:json": "jest --json", "test:exportJson": "jest --json
使用 jest 的原因 随着前端的发展,web的交互越来越复杂,自动化测试是非常有必要融入到开发的流程中,而目前界内普遍通用且比较火的就是有 facebook开发的 Jest 这套工具。...他可以创建测试用例,执行测试,自身还有驱动和mock,且用起来也是很方便,正如 jest 的官网这样描述 jest,Jest is a delightful JavaScript Testing Framework...同时, jest 也支持做不匹配的校验,也就是反向的校验。下面就是一些不同的匹配器。 简单类型的校验; 使用 tobe() 匹配器做简单类型的校验,校验结果是否正确。...jest 做回调操作测试需要注意,函数的回掉情况。...的基础用法,下一篇文章将会总结 jest 的高级用法。
在启用fake timer的时候,setTimeout、setInterval都会使用Jest提供的假实现,他们不会真正阻塞住测试用例。...(2); }); 我们做了以下改动: 使用jest.runAllTicks代替await delay(0)。...根据Jest的官方文档,调用这个函数后,所有队列中的“微任务”都会被立刻执行,这里的目的就是保证catch回调能被立刻调用; 使用jest.advanceTimersByTime(6000)代替await...咳咳……也就是说,Promise所使用的微任务队列又是另外一个微任务队列,并且不归Jest控制! 因此,问题也明确了:runAllTicks什么作用也没有发挥,我们回到了最初遇到的问题。...断言通过后,我们再手动调用传入的回调函数来模拟6s已经经过的场景。
前言 在了解jest框架前,楼主一直尝试用官方的Elasticsearch java api连接es服务的,可是,不知何故,一直报如下的异常信息,谷歌了很久,都说是jvm版本不一致导致的问题,可我是本地测试的...).get("content")); } client.close(); 如果有人知道怎么回事,告诉一下楼主吧,让楼主坑的明白,感激不尽了,我的es版本是2.2.0 进入正题 了解jest...jest是一个基于 HTTP Rest 的连接es服务的api工具集,功能强大,能够使用es java api的查询语句,项目是开源的,github地址:https://github.com/searchbox-io.../Jest 我的测试用例 分词器:ik,分词器地址:https://github.com/medcl/elasticsearch-analysis-ik ,es的很多功能都是基于插件提供的,es...--jest依赖--> io.searchbox jest <version
本篇教程是 JavaScript 测试系列实战 的第一篇教程,首先介绍了测试的类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...E2E 测试的重点是在我们正在运行的应用程序中模拟实际用户(例如模拟滚动、单击和键入等行为),并检查我们的应用程序是否从实际用户的角度运行良好。...因此这里建议直接使用 npx jest 执行测试。 编写第一组测试 每个测试文件通常有多个测试用例。Jest 允许我们通过 describe 函数对测试用例进行分组,它创建了一个可以组合多个测试的块。...测试文件中使用它。...配置 jest-enzyme 你应该还记得,在刚才的测试代码中,我们还是使用了 Jest 自带的 Matcher(toEqual)。
相信setInterval这个东西大火都比较熟了,这里不做关于它的介绍,而是关于本文是如何实现这一功能。
领取专属 10元无门槛券
手把手带您无忧上云