D3JS 测试 - enter() 未被触发

D3JS Testing - enter() is not fired

我在使用 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 库来检索 DOM 对象,我发现当我 运行 测试时,enter() 函数永远不会解雇了。

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

好吧,这个问题有点棘手:我将一个 city 数据集传递给 d3js,而不是将它放在像 [city].

这样的数组中

也就是说,我认为 d3js 迭代了 city 对象的键,而不是对象本身。

非常感谢您的帮助!