Jasmine:为jQuery对象定义自定义漂亮打印机的最简单方法是什么?

Jasmine: What's the easiest way to define a custom pretty printer for jQuery objects?

本文关键字:打印机 最简单 方法 是什么 漂亮 自定义 jQuery 对象 定义 Jasmine      更新时间:2023-09-26

所以jasmine中jQuery值的默认漂亮打印机不是很漂亮(它将其作为对象打印,列出所有可用的方法)。如果把它打印成数组就好了。

我可以重写jasmine.PrettyPrinter.prototype.format以在value instanceof jQuery的情况下给出特定的指令,或者重写jasmine.isArray_以对jQuery对象返回true,但这两种方法看起来都像是黑客。

有没有一种更自然的方式来扩展茉莉花打印机?

@James deBoer的解决方案是正确的想法,但我必须稍微修改它才能使其工作:

jQuery.fn.jasmineToString = function() {
  this[0].outerHTML;
};

this为jQuery对象;[0]给出了第一个DOM元素(因为jQuery对象是匹配元素的集合),DOM属性是outerHTML(注意大写)。

@James很有可能已经定义了自己的jQuery.outerHtml()函数。

茉莉。pp将查找在对象上定义的方法'jasmineToString'。

我扩展了我的jQuery对象:

jQuery.fn.jasmineToString = function() {
  return this.outerHtml();
};