在Eclipse中如何让很长的代码分行显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Eclipse中如何让很长的代码分行显示相关的知识,希望对你有一定的参考价值。
比如把
Toast.makeText(DataPickerActivity.this, "闹钟将在"+ (hourSet - hourNow) +"小时" + (muniteSet - minuteNow) + "分钟后启动", Toast.LENGTH_LONG).show();
显示成
Toast.makeText(DataPickerActivity.this
, "闹钟将在"+ (hourSet - hourNow) +"小时" + (muniteSet - minuteNow) + "分钟后启动"
, Toast.LENGTH_LONG).show();
如何在 Cypress 中输入一个很长的字符串来测试输入框?
【中文标题】如何在 Cypress 中输入一个很长的字符串来测试输入框?【英文标题】:How to type a very long string for testing an input box in Cypress? 【发布时间】:2021-09-12 08:51:27 【问题描述】:我想测试 RichTextEditor 的字符限制的验证,即 2000 个字符,但是用 .type()
输入 2000+ 个字符需要很长时间。
有没有办法加快速度?我尝试使用 Ctrl+c 和 Ctrl+v 修饰符,但它没有在输入框中复制粘贴文本。
【问题讨论】:
.type()
有一个接受对象的配置参数。可配置选项之一是delay
,它控制按键之间的间隔。默认值为10
,因此将其设置为0
或1
可能会加快速度。
【参考方案1】:
减少延迟 delay: 0
的问题在于,它可以限制字符流,以防某些事件处理程序或验证无法处理最高速率。
另外,如果我使用最简单的输入进行测试,则没有附加 javascript
<input maxlength="2000">
测试需要 37 秒,默认延迟为 10 毫秒,但仍然是 24 秒,延迟为 0。
我建议通过 val()
方法设置 2000 个字符并输入最后一个
cy.get('input')
.invoke('val', stringGen(2000)) // set 2000 chars
.type('!') // add another
.invoke('val') // read the value
.should('have.length', 2000) // confirm the last did not go in
这会在 0.6 秒
内运行如果您有一些 javascript 事件处理程序,则需要在设置初始 2000 个字符后触发它们
.trigger('change')
或
.trigger('input')
富文本编辑器
使用<div>
保存文本的富文本编辑器可以使用text()
方法而不是val()
方法预加载。
您还需要识别接收文本的 div。
例如,react-quill 在其主 div 上使用 ql-editor
类。
cy.get('div.ql-editor')
.invoke('text', stringGen(2000)) // set 2000 chars
.type('!') // add another
.invoke('text') // read the value
.should('have.length', 2000) // confirm the last did not go in
react-quill 的时间安排
delay: 10
(默认)32 秒 delay: 0
18 秒
预加载文本 1.5 秒
【讨论】:
实际上,我使用的是自定义 RichTextEditor,它不会在 DOM 上呈现输入,它会呈现 div,所以在 div 上,如果我尝试调用 'val' 它不起作用<div>
s 使用文本节点来保存文本,因此调用的jQuery方法不是val
,而是text
。【参考方案2】:
您可以将选项传递给类型函数type(text, options)
有关可用选项,您可以查看docs
在您的情况下,您可以尝试覆盖 delay
选项以删除输入持续时间。
inputField.type('a'.repeat(2000), delay: 0)
【讨论】:
【参考方案3】:如果您将这段代码放到cypress/support/index.js
文件中,它应该会消除击键之间的延迟。
Cypress.Keyboard.defaults(
keystrokeDelay: 0,
)
【讨论】:
Cypress.Keyboard.defaults 不是函数 - 抛出此错误【参考方案4】:我使用以下代码 (from this post) 快速复制粘贴到文本区域中的一百个电子邮件地址:
it('pastes text to textarea', () =>
const textToPaste = 'this is not a valid email'
cy.visit('index.html')
cy.get("[type='email']").invoke('val', textToPaste).trigger('blur')
)
基于invoke() cypress method
【讨论】:
以上是关于在Eclipse中如何让很长的代码分行显示的主要内容,如果未能解决你的问题,请参考以下文章