css - 如何针对 FUOC 自动测试我的 webpack 捆绑网站?

标签 css node.js testing web webpack

我构建了一个与 webpack 捆绑在一起的 React + Redux 网络。由于捆绑错误,我的网站开始显示 FUOC行为(一些组件没有将它们的 CSS 注入(inject)服务器响应,因此在加载最终 CSS 之前,应用程序的无样式部分会“闪现”)。其他错误包括第 3 方组件的 FUOC(需要手动操作)。

我对服务器和网络的不同部分进行了自动化测试。但是我如何自动测试 FOUC(使用我的 node.js 工具链)?我对 selenium 和 phantomjs 犹豫不决,但这似乎有点矫枉过正,而且我仍然不知道如何检测到它。

最佳答案

我通过确保具有 FOUC 的元素仅在其 CSS 完全加载时可见来防止 FOUC。为了简单起见,我将它应用于整个 body 。例如:

body {
    opacity: 0;
}

然后,稍后在 CCS 文件中或加载一些组件......

body {
    opacity:1;
}

这会在渲染期间有效地隐藏仍在绘制的元素。以此为基础,您可以创建一个单元测试,在为您的元素/组件加载 CSS 之前运行,以测试可见性或应在元素变得可见之前加载的其他 CSS 属性。诀窍是确保这些测试在元素渲染的每个阶段的适当时间运行。

// Test for FOUC load component then verify for no visiblity ...    
expect($('#testElement').is(':visible')).toBe(false)

/** 
 * load component/elemnt css here then ... 
 */

// then test for visibility or other css properties ...
expect($('#testElement').is(':visible')).toBe(true)

关于css - 如何针对 FUOC 自动测试我的 webpack 捆绑网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40071103/

相关文章:

javascript - 为什么位置粘性在我的博客文章页面上不起作用?

html - 我的电子邮件签名中的 Logo 图标飞到 Web 浏览器的最右侧,但我希望它的位置准确

css - 如何在 jquery mobile 中正确使用 ui-btn-left 和 ui-btn-right 类

javascript - 在javascript中将字符串拆分为特定结果

javascript - 将mysql查询返回到nodejs flash消息

javascript - 应用发送 POST 请求两次

testing - 非程序员可以使用 Spock 阅读文档吗?

html - 自定义 CSS 布局的问题

node.js - 在 Node 中模拟构造函数

unit-testing - 什么时候在软件开发过程中进行单元测试?