【问题标题】:How to write Mocha test case for HTML elements?如何为 HTML 元素编写 Mocha 测试用例?
【发布时间】:2014-08-14 12:30:19
【问题描述】:

我正在使用Mocha / PhantomJS 设置测试我的JavaScript 代码以运行测试。

有一个功能:

function getNodeClickWithExpand(idElement, treeName, autoCompleteName) {
    jQuery("input[type='checkbox'][name='c_" + idElement + "']").trigger("click");
    var treeView = jQuery("#" + treeName).data("kendoTreeView");
    treeView.expand(document.getElementById(idElement));
    jQuery("#" + idElement).closest("div").find("span:last").addClass("k-state-selected");
    kendoUiHoverAutoScrolling(idElement, treeName, autoCompleteName);
}

我正在为Mocha写这个函数的测试用例:

describe("getNodeClickWithExpand", function () {
    it("should pass with correct inputs", function () {
        var processJsonObject = getNodeClickWithExpand(idElement, treeName, autoCompleteName);
        console.log(processJsonObject);
    });
});

当我运行这个测试用例时,它给了我一个错误。我知道这是不正确的。 请告诉我如何运行test case for HTML elements and events

编辑:

我得到的错误:

【问题讨论】:

  • 你是在浏览器还是 cli 中运行测试?
  • @1469 我在两者中都运行测试。
  • 你是否包含了定义getNodeClickWithExpand()的Javascript文件?
  • @1469 是的,我也包含了该文件。

标签: javascript unit-testing testing phantomjs mocha.js


【解决方案1】:

我相信问题就在这里-

it("should pass with correct inputs", function () {
    var processJsonObject = getNodeClickWithExpand(idElement, treeName, autoCompleteName);

测试错误'Cannot read property 'expand' of null'表示dom中没有id = idElement的元素。运行测试时,您需要将元素的 id 作为字符串传递。您也没有为参数“treeName”和“autoCompleteName”传递任何值。

【讨论】:

  • 'treeName' 和 'autoCompleteNmae' 已经定义好了,我也在传递 idElement。
  • 您能否在您的描述块中运行此测试并检查测试是否通过? var domEle = document.getElementById(idElement); it('元素存在于DOM中', function() { expect(domEle).to.not.equal(null); });
  • 不,我没有开始赏金,我的问题仍未解决。
  • 对不起,我查过了;别人给了我赏金。您是否尝试过我之前评论中的测试?
  • 肯定表示var idElement 包含空值,或者idElement 里面的id 值的页面中没有dom 元素。尝试在浏览器控制台中执行 document.getElementById('') 并检查输出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 2015-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-04
相关资源
最近更新 更多