D3JS测试 - 不会触发enter()

时间:2016-05-20 10:01:58

标签: javascript d3.js jasmine jasmine-jquery

我在使用D3JS设置测试时遇到了一些问题,以下是我要测试的代码:

function drawCityWindow(city,scale){
  var d3cityWindow = d3.select(".svg").selectAll(".d3city-window").data(city);

  d3cityWindow.enter()
    .append("div")
    .attr("id", function (d) {
        return d.id+"-window"
    })

}

这是我的测试单元,我想测试在DOM中的存在:

it("should test the drawCityWindow method",function () {
        var city = description["cities"][0];
        drawCityWindow(city,1);
        expect($('#'+city.id+'-window')[0]).toBeInDOM()
    })

我正在使用着名的jasmine-jquery lib来检索DOM对象,我发现当我运行测试时,从未触发过enter()函数。

你有关于这个问题的线索吗?

1 个答案:

答案 0 :(得分:0)

嗯,这个问题有点棘手:我将city数据集传递给了d3js,而不是将它放在像[city]这样的数组中。

也就是说,我认为d3js遍历city对象的键,而不是对象本身。

非常感谢你的帮助!