我在使用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()函数。
你有关于这个问题的线索吗?
答案 0 :(得分:0)
嗯,这个问题有点棘手:我将city
数据集传递给了d3js,而不是将它放在像[city]
这样的数组中。
也就是说,我认为d3js遍历city
对象的键,而不是对象本身。
非常感谢你的帮助!