假设我有一个功能
function f_createScriptElement(f_url) {
var script = d[CreateElement](Script);
script.type = "text/javascript";
script[Src] = f_url;
script.async = true;
try {
var container = ((m_videoPlayerTagId) ? d[GetElementById](m_videoPlayerTagId) : f_getAdContainerElem());
if (container) {
container.addEventListener("loadedmetadata", function(e) {
var c_width = this.videoWidth,
c_height = this.videoHeight,
v_width = this[WIDTH],
v_height = this[HEIGHT];
m_playerProperties[NS_AD_CD] = container.duration;
m_playerProperties[NS_AD_SZ] = c_width + "x" + c_height;
m_playerProperties[NS_AD_PS] = v_width + "x" + v_height;
m_playerProperties[NS_AD_VS] = ((container.volume === 0) ? false : true);
}, false);
container.parentNode.insertBefore(script, container.nextSibling);
} else {
return;
}
} catch (err) {}
}
如果您可以告诉您要编写的相应测试用例(正面和负面)以便在QUnit中为此函数提供完整的代码覆盖率,那将是很好的,因为它不会返回字符串或数字。
答案 0 :(得分:1)
由于这是一个带副作用的函数,你必须测试副作用,即将脚本元素插入DOM。要测试肯定的情况,添加一个DOM元素,这将使if(container)
语句通过,并检查具有正确属性的脚本标记是否已添加到DOM。对于否定,只需运行测试并检查DOM中是否缺少脚本元素。