Mad*_*sal 12 javascript automated-tests rich-text-editor reactjs cypress
我想测试 RichTextEditor 的字符限制(2000 个字符)的验证,但输入 2000 多个字符需要.type()花费大量时间。
有没有办法加快这个速度?我尝试使用 Ctrl+c 和 Ctrl+v 修饰符,但它不会复制粘贴输入框中的文本。
小智 15
减少延迟的问题{ delay: 0 }在于,它可以限制字符流,以防某些事件处理程序或验证无法处理最高速率。
另外,如果我用最简单的输入进行测试,则不附加 JavaScript
<input maxlength="2000">
Run Code Online (Sandbox Code Playgroud)
默认延迟 10 毫秒,测试需要 37 秒,但延迟为 0 时仍然需要24 秒。
我建议通过该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
Run Code Online (Sandbox Code Playgroud)
运行时间为0.6 秒
如果您有一些 javascript 事件处理程序,则需要在设置初始 2000 个字符后触发它们
.trigger('change')
Run Code Online (Sandbox Code Playgroud)
或者
.trigger('input')
Run Code Online (Sandbox Code Playgroud)
用于保存文本的富文本编辑器可以用方法而不是方法来<div>预加载。text()val()
您还需要识别接收文本的 div。
例如,react-quillql-editor在其主 div 上使用该类。
.trigger('change')
Run Code Online (Sandbox Code Playgroud)
反应羽毛笔的计时
{ delay: 10 }(默认) 32 秒
{ delay: 0 } 18 秒
预加载文本 1.5 秒
小智 10
您可以将选项传递给类型函数type(text, options)
有关可用选项,您可以查看文档
对于您的情况,您可以尝试覆盖delay选项以删除输入持续时间。
inputField.type('a'.repeat(2000), { delay: 0})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13037 次 |
| 最近记录: |