首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何让注解处理器支持 Kotlin?

    什么是注解处理器 话说,最近尝试了一下写了个注解处理器,也就是我们常见的 apt,在 Kotlin 当中有个插件叫 kapt,说的就是注解处理器。注解处理器能干什么呢?...我们写注解处理器,需要编写一个配置文件让编译器知道哪个是注解处理器的入口: ?...显然直接通过上面的这种依赖方式,只会让 Javac 知道有这么个注解处理器,而 Javac 哪里知道还有什么叫 Kotlin 的东西啊,所以我们还得让 kapt 知道才行。...如何在注解处理器内识别 Kotlin 代码 既然都是 Java 文件,那么我怎么在注解处理器内识别出来哪些代码是 Java 的,哪些是 Kotlin 的呢?...Kotlin 源码,我完全可以生成一个扩展方法让 Kotlin 开发者更愉快地调用: fun Hello.toHelloString(){ ... } 当然,这个扩展方法也是可以被 Java

    2.8K41

    Cypress必须掌握的一些核心概念

    在上一篇Cypress基础指南大体介绍了Cypress的一些基础知识,让大家对Cypress有了一定的了解和印象,本文将介绍Cypress的一些核心概念,让大家进一步了解和加强。...Cypress如何查询元素的?...重磅提示: Cypress利用了JQuery强大的选择器引擎来帮助我们进行web自动化测试,所以掌握JQuery选择器的能力,也意味着你能更好的处理复杂的HTML结构。...对于Cypress而言,可能产生以下两种可能: 一直找,直到找到该DOM元素 超过默认或设置的超时时间了 对于下selenium webdriver,当未找到指定的元素时,会抛出各种异常提示等,需要我们手动写代码来处理这些异常...,而Cypress则不需要手动写代码处理各种可能的异常情况,这个方面Cypress与selenium webdriver相比就显得简洁多了!!!

    1.2K10

    Cypress系列(6)- Cypress 的重试机制

    最后的断言解析 检查标签为 h1 的元素是否包含 jane.lane 断言的一般步骤 用 查询应用程序的DOM,找到元素 cy.get() 针对元素或元素列表进行断言尝试 ,我们示例中为 .should...("contain", "jane.lane") 关于实际工作中的灵魂拷问 现在的 web 应用基本都是异步的,如果出现以下情况又应该怎么处理呢?...上述情况再测试中经常会发生,一般处理方法是在断言前价格固定等待时间(或像 selenium 一样显式、隐式等待),但仍有可能会发生测试失败 Cypress 如何优美的解决上述问题 命令之后的断言通过...是全局的,不用针对元素去单独识别 Cypress 这种自动重试机制避免了在测试代码中编写硬编码等待(强制等待),使测试代码更加健壮 多重断言 在日常测试中,有时候需要多重断言,即获取元素后跟多个断言...并不会重试所有命令,当命令可能改变被测应用程序的状态时,该命令将不会重试(如: ,毕竟要点击) click() Cypress 仅会重试那些查询 DOM 的命令: 、 find() 、 contains

    2.6K10

    《平行宇宙思维如何让前端错误处理无懈可击》

    通过借鉴平行宇宙的思维方式,我们可以重新构建一套更加全面、智能、灵活的错误处理体系,让前端程序在各种可能的情况下都能稳定运行。...数据丢失等严重后果的致命错误,必须制定严格且快速的应对策略,一旦检测到这类错误,立即采取紧急措施,如终止当前危险操作、保存关键数据、向用户显示明确的错误提示并引导其进行后续操作;对于发生概率较高但影响相对较小的普通错误,如页面元素显示异常...为了让前端程序在不同的“错误宇宙”中都能实现平滑过渡和稳定运行,建立智能的错误感知与动态调整机制必不可少。程序需要具备实时监测和感知错误发生的能力,就像生物体能够敏锐感知外界环境变化一样。...此外,错误处理机制还需要注重用户体验的维护。在进入不同的“错误宇宙”时,程序不能仅仅关注自身的稳定运行,还要考虑如何将错误对用户的影响降到最低,以友好、清晰的方式与用户进行交互。...同时,在处理错误的过程中,保持界面的美观和操作的流畅性,减少用户因错误产生的焦虑和不满情绪,让用户感受到即使在出现问题的情况下,程序依然在尽力为其提供良好的服务。

    10500

    前端学习(21)~css学习:如何让一个元素水平垂直居中?

    如何让一个子元素在父容器里水平垂直居中?这个问题必考,在实战开发中,也应用得非常多。...如何让一个行内元素(文字、图片等)水平垂直居中 行内元素水平居中 给父容器设置: text-align: center; 行内元素垂直居中 让文字的行高 等于 盒子的高度,可以让单行文本垂直居中...比如: .father { height: 20px; line-height: 20px; } 如何让一个块级元素水平垂直居中 margin: auto...上面的代码中,父元素和子元素都是定宽高的,即便在这种情况下,我给子元素设置 margin: auto,子元素依然没有垂直居中。 那还有没有比较好的通用的做法呢?...可我明明想让指定的某个子元素居中,要怎么改进呢?

    4.8K10

    你不知道的Cypress系列(5) -- 眼瞎的TestRunner​

    而在Cypress中国群内、在公众号iTesting里,我每天都能看到大量关于Cypress的使用讨论和私下问询。这让我感到无比荣幸。...仅再次列下其定义: TestRunner是一个独特的测试运行器。Cypress的所有命令通过它运行。 通过TestRunner你可以观测到, 在某一个时刻: 1. 哪些命令在执行。 2....这个时候,有条件的你可能也要看下开发的代码如何写的。例如,visit的时候发生了什么, click的时候哪些事件被触发了? 通过了解开发逻辑可以帮助你快速定位问题。...说明问题就在这里了: 也就是说,元素已经完成show的操作并且马上变成disappear了,但Cypress的Test Runner还没反应过来,还在检查元素show出来没。...05 — 结论 然后就是各种查资料, 最后发现Cypress早有结论: 1. 如果一个元素出现和消失的间隔在21ms内,那么大概率TestRunner会“瞎”。

    2.6K40

    Cypress系列(93)- Cypress.dom 命令详解

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 作用 与 DOM 元素相关的 helper...方法的集合 重点 实际上 可以链接几十种方法但并不会全部讲解 Cypress.dom 这些方法几乎在每个内置命令中都由 Cypress 在内部使用 阅读源码,查看所有方法:https://github.com.../cypress-io/cypress/blob/develop/packages/driver/src/dom/index.js 语法格式 Cypress.dom.isHidden(element)...所有栗子的前置条件 beforeEach(function () { cy.visit('https://example.cypress.io/cypress-api') }) isattached...isvisible 判断一个元素元素是否可见 测试代码 ? 运行结果 ? isjQuery 判断一个对象是否为 jQuery 对象 测试代码 ? 运行结果 ?

    1.1K10

    你不知道的Cypress系列(8) -- “可视化”测试你知多少?

    这让我感到无比荣幸(买了书的同学们,公众号回复你的微信号,拉你到Cypress中国群)。 今天是你不知道的Cypress系列(8) -- “可视化”测试你知多少?...在你第一次运行某个测试时,Cypress Test Runner对你指定的元素进行截图并保存,并称之为Base Line。在你第2次运行这个测试时,会再次截图并将截图与BaseLine进行比较。...//注意toMatchImageSnapshot这个方法 cy.get('.result.c-container.new-pmd').eq(0).toMatchImageSnapshot() 你仅需要使用...如果代码的改变是页面元素的颜色,或者icon的大小,在我们传统的测试中,如果你没有针对这个元素颜色或者icon大小做断言,那么测试就总会成功,但实际上页面是有变化的。而使用可视化测试可以避免这一点。...如何启用可视化测试 可视化测试启用非常简单,只需要如下步骤: 安装Plguin npm i cypress-plugin-snapshots -S 更改cypress.json文件 在cypress.json

    3.4K50

    摆脱前端测试恶梦:摇摆不定的测试(2)

    获得整个团队的承诺是至关重要的然后,作为一个团队,你需要决定如何处理不稳定的测试。 在我从事技术工作的这些年里,我遇到了四个团队用来对付不稳定的策略。 什么都不做,接受不稳定的测试结果。...有许多方法可以做到这一点,但Cypress处理得特别好。 所有的Cypress命令都拥有一个隐含的等待方法。...它们已经检查了该命令所应用的元素是否在DOM中存在指定的时间--指向Cypress的重试能力。然而,它只检查是否存在,仅此而已。...这个例子在元素上使用了一个明确的等待时间,选择器为.offcanvas 。只有当该元素在指定的超时之前是可见的,测试才会进行,你可以配置这个超时。...调试不稳定的测试 我们现在知道了如何通过设计来防止测试失灵。但是,如果你已经在处理一个不稳定的测试了呢?你怎么能摆脱它呢? 当我在调试的时候,把有缺陷的测试放在一个循环中,对我发现易碎性有很大帮助。

    1.6K20

    你不知道的Cypress系列(3) -- 是时候重构自己的思维了!

    在Cypress中国群内、在公众号iTesting里,我每天都能看到大量关于Cypress的使用讨论和私下问询。这让我感到无比荣幸。...希望让大家在选用Cypress作为前端自动化测试框架方案时, 可以借鉴一下,避免再走我走过的弯路。 ” 今天是Cypress系列>的第三篇 -- 是时候重构自己的思维了!...(二)Cypress命令是如何运行的?...那么,如何才能确保cy.login被执行呢? 为了让你能够访问到Cypress命令执行的结果,Cypress提供了 .then() .then是闭包的一个典型应用。...如何做到呢?别忘记,Cypress是运行在浏览器之内的,是跟你的应用程序运行在同一个生命周期的,你对你的应用程序有完全的控制权! 听起来很好,不过很可惜。

    2.7K20

    Cypress:详解架构原理与环境设置指南

    但很多同学用过 Cypress 写用例,却没有真正理解它的架构与运行机制,也不清楚环境应该如何正确配置。本文就来系统讲清楚:Cypress 到底是怎么工作的?...以及如何搭建一套可用于真实项目的 Cypress 环境?一、Cypress 的整体架构:为什么它这么快?...浏览器内部运行Cypress 的测试代码直接跑在浏览器里,可直接操作并访问:DOM 元素(无需额外等待)window、document 等浏览器对象XHR / Fetch 网络请求cookie、本地存储等数据没有...Node 进程提供额外能力浏览器能干的事情不多,Cypress 会再起一个 Node 服务来处理系统级任务,例如:文件读写(如下载、上传模拟)截图与录屏定制任务(task)调用后端 API你可以把它理解成...这意味着 Cypress 天生就有“智能等待”的能力,大量减少 sleep、wait,也让测试更加稳定。二、Cypress 环境设置:如何搭建一套完整项目?

    32010

    Cypress系列(18)- 可操作类型的命令 之 点击命令

    如果想从头学起Cypress,可以看下面的系列文章哦 https://www.cnblogs.com/poloyy/category/1768839.html 前言 啥是可操作类型?...就是可以和 DOM 元素交互的命令,比如:点击,双击.....等等等 这些命令模拟用户和应用程序交互,Cypress 会触发浏览器事件,进而触发应用程序绑定的时间 这一篇着重讲点击操作,一共有三个命令...如何传 options ?...当使用 force 时,将执行这些操作 继续执行所有默认操作 强制在元素上触发事件 当使用 force 时,将不会执行这些操作 滚动到视图中 确保可见 确保未禁用 确保没有分离 确保它不是只读的 确保它没有动画...结尾 本文是博主基于对蔡超老师的《Cypress 从入门到精通》阅读理解完后输出的博文,并附上了自己的理解

    2.7K10

    你不知道的Cypress系列(7) -- 当iFrame遇见弹出框

    这让我感到无比荣幸(买了书的同学们,公众号回复你的微信号,拉你到Cypress中国群)。...今天是你不知道的Cypress系列(7) -- 当iFrame遇见弹出框 自从Cypress出现后,Cypress就在吊打一切Web端测试框架。...百度百科说它的作用是文档中的文档,或者浮动的框架(FRAME),iFrame元素会创建包含另外一个文档的内联框架(即行内框架)。...我相信你看了这个定义会跟我跟我一样丈二和尚摸不着头脑,我们用人话重新说一遍: iFrame是HTML元素的组件,iFrame元素允许你在你的网站中包含来自其他网站的内容。...不废话了,看Cypress如何处理这种情况: it('测试alert', () => { cy.visit('https://www.w3school.com.cn/tiy/t.asp

    3K20
    领券