Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 有没有一种测试CSS的方法?_Jquery_Css_Testing - Fatal编程技术网

Jquery 有没有一种测试CSS的方法?

Jquery 有没有一种测试CSS的方法?,jquery,css,testing,Jquery,Css,Testing,我知道这一想法以前就有过——尤其是,而且——但似乎没有给出解决方案。这在很大程度上被认为是一个“好主意,但不可能”或“愚蠢的想法” 我的想法是使用jQuery来计算计算值,并将它们与预期值进行比较。例如,我可以使用这是一个标题,理论上,我应该知道它的字体大小、颜色、字体大小等。我可以使用jQuery检查它是否确实是该字体大小,如果不是,则返回一个错误 这样做的好处是,我不必坐在每个浏览器中都有一个检查表——“这个标题是否粗体?”?这些链接有下划线吗?这列是110px宽吗?'-每次我做CSS更改时

我知道这一想法以前就有过——尤其是,而且——但似乎没有给出解决方案。这在很大程度上被认为是一个“好主意,但不可能”或“愚蠢的想法”

我的想法是使用jQuery来计算计算值,并将它们与预期值进行比较。例如,我可以使用
这是一个标题
,理论上,我应该知道它的字体大小、颜色、字体大小等。我可以使用jQuery检查它是否确实是该字体大小,如果不是,则返回一个错误

这样做的好处是,我不必坐在每个浏览器中都有一个检查表——“这个标题是否粗体?”?这些链接有下划线吗?这列是110px宽吗?'-每次我做CSS更改时

我的问题是——这是一个可行的想法吗?在实施这样的计划时,主要的问题是什么?以前有人做过这样的事吗


编辑:任何关于如何实际渲染错误的想法都是受欢迎的。我想在相关页面的页眉中使用JavaScript文件,然后向页面添加内容,有点像Firebug的页面版本。但是,我担心这会影响页面的呈现。或者,我可以将其登录到控制台,但我认为IE6没有合适的控制台,为每个测试页面打开每个浏览器的每个控制台似乎也有点烦人。

即使有办法做到这一点,我仍然觉得需要手动检查

您给出的示例不是通常需要担心的事情,而是定位和盒子模型之类的东西。如果我说
h1{color:red}
我很有信心它在IE中会是红色的

获取计算出的值并不能真正帮助找出它们是如何呈现的,实际上,这听起来比仅仅启动IEtester要复杂得多。通过一点经验,您可以快速了解检查跨浏览器兼容性所需的内容类型,并且随着浏览器越来越好,这一问题也越来越少

有一种技术可以帮助你:在IE中进行设计。是的,它确实很糟糕,但你通常会发现,当你在IE7中使用它,然后在FF、IE8或IE6中进行测试时,与在Chrome中进行测试,然后在IE7中进行双重检查相比,这种差异非常接近,或者说是很容易修复的。我知道“跨浏览器”封装的不仅仅是IE,但我们不要自欺欺人;IE是问题浏览器,也是应用最广泛的浏览器

总而言之:如果有一个工具可以实现这一点,那么它必须是非常令人惊奇的,以防止我在真正的浏览器中进行检查。我想这就是为什么人们认为这是解决问题的办法

这样做的好处是,我不必坐在每个浏览器中都有一个检查表——“这个标题是否粗体?”?这些链接有下划线吗?这列是110px宽吗?'-每次我做CSS更改时

当然,但秘密是你现在不必这么做

如果这个标题不加粗,那么就没有人会死,或者损失任何金钱。有人会注意到*,它会得到修复,只需很少的努力

你最好花时间设计CSS,这样你的样式就可以被隔离(因此不太可能导致难以追踪的错误),而不是为你网站上每个页面上的每个元素编写自动测试

您需要付出的努力与正确编写代码的难度(这并不多)以及错误编写代码的后果(这也不多)不成比例

更实际地说,您将如何指定所描述的测试类型?您需要告诉测试运行程序应该检查哪些元素,以及每个元素的样式。这就是CSS所做的。也许您要检查哪些元素的定义可能比您的CSS选择器更具体(例如,单独选择每个页面上的每个元素),但无论是最初编写还是维护,这都非常耗时

(仅详细说明必要的工作:对于您描述的跨浏览器渲染测试,您必须运行实际的web浏览器(使用类似于Selenium的东西),这意味着您需要多台机器(用于IE),所有这些都必须能够访问您的测试框架。这将是一场噩梦,要亲自运行,并且作为一项服务提供,计算量非常大——只要问问运行的人就可以了。)

很抱歉,这并不能真正回答您的实际问题,但测试驱动开发可能有点像宗教,因为人们在没有真正理解它是如何工作的,或者它实际上在哪里为您的时间提供了可观的回报的情况下,就被它的想法所启发(这是令人钦佩的)



*(或者,正如我经常经历的那样,没有人会注意到,在早上喝第三杯啤酒之前,你会花几秒钟思考你职业生涯的毫无意义。)

嗯。。。让听众听写你测试的内容,并将其作为你客户关系的一部分

你的流量来源是什么?查看日志、分析等。老实说,我不在乎Opera中的内容(例如),如果传统上,Opera相当于总流量的1%——除非这是客户最喜欢的浏览器,但你明白了——关注那些重要的内容,而不是所有可用的内容

一方面,我认为这个想法很酷,但我不相信它——每次更新2个月后它都会过时(这有点讽刺,但仍然)…我最终会用自己的眼睛看。整个想法听起来有点像自动鞋带之类的东西——对我来说相当没有意义。除此之外,“我用Kick@cSS“!!”永远不会让你摆脱客户的困境

如果您遵循标准,测试和调试通常非常快(只要您在进行测试)。不要包装块元素