У меня есть код d3.js:Угловое - тестирование D3.js, жасмин генерируется HTML
var svgX = svg.append("text")
.attr("class", "x label")
.attr("text-anchor", "end")
.attr("x", graphConfig.width)
.attr("y", graphConfig.height - 6)
.style("font-size","16px")
.text(keyDim);
И я хочу, чтобы проверить сгенерированный HTML с жасмином следующим образом:
var svgXHtml = d3.select(angular.element('<text class="x label" text-anchor="end" x="500" y="294" style="font-size: 16px;">time</text>')[0]);
expect(svgX).toBe(svgXHtml);
Тест не проходит, хотя <text>...</text>
часть svgX
и svgXHtml
идентична. В консоли я вижу: Expected [ [ HTMLNode, parentNode: HTMLNode ] ] to be [ [ HTMLNode, parentNode: HTMLNode ] ]
Просто протоколирование svgX
и svgXHtml
дает:
LOG: [[<text class="x label" text-anchor="end" x="500" y="294" style="font-size: 16px;">time</text>]]
LOG: [[<text class="x label" text-anchor="end" x="500" y="294" style="font-size: 16px;">time</text>]]
Похоже, идентичные для меня, но тест не пройден.
Итак, как это сделать в правильном направлении?
Могу ли я спросить вас, почему вы используете 'd3.select' выбрать уже существующий элемент? – Appeiron
Потому что я пытаюсь сделать 'console.log()' одинаковым в обоих случаях, надеясь, что он может продвинуть меня дальше по дороге. Если я этого не сделаю, я получу '[[HTMLNode, parentNode: HTMLNode]]', другой - как «HTMLNode». Таким образом, я не нуждаюсь в этом ни для чего другого. Моя цель - просто построить html из ' time ' make it равный svgX. –
Можете ли вы попытаться сохранить выбор для 'svgX с' d3.select' тоже? Что-то вроде 'd3.select ('body'). Html (''). Append ('text')', но выберите ваш фактический элемент, в который вы добавите его. – Appeiron