我正在使用 Cypress 测试我的 SvelteKit 网站。我有时会遇到不稳定的测试,类似于此处描述的内容: https: //www.cypress.io/blog/2019/01/22/when-can-the-test-click/。简而言之,Cypress 有时会在附加事件侦听器之前找到并单击按钮 - 结果,单击无处可去。建议的解决方案是简单地重新尝试单击,直到附加了适当的侦听器。这也适用于我的情况。然而,尽管我确实理解为什么这可能是博客文章中给出的示例中的一个问题(它是一个大型日历模式),但我发现很难证明在使用简单的 Svelte 按钮时会出现此问题。
这是一个简单的按钮示例,单击时会显示一些内容:
<script>
let hide = true;
</script>
<button
on:click={() => {
console.log('clicked');
hide = false;
}}>
Show
</button>
<span class:hide>Content</span>
<style>
.hide {
visibility: hidden;
}
</style>
Run Code Online (Sandbox Code Playgroud)
相应的测试有时会通过,有时会失败:
it('reveals content on click', () => {
cy.contains('Show').click();
cy.contains('Content').should('be.visible');
});
Run Code Online (Sandbox Code Playgroud)
同样,我知道可以通过重新尝试单击该按钮来解决此问题。如果这就是让 Cypress 与 Svelte/SvelteKit 一起工作所需的条件,那么我就同意了。但我想知道:为什么这会成为一个问题?
最小复制仓库:https://github.com/sophiamersmann/test-svelte-kit-cypress