Как мне сравнить древовидную структуру внутри задачи объекта с деревом obj_after без необходимости фактически сравнивать отдельные узлы в дереве.(один является экземпляром класса, то есть с методами экземпляра, а другой не имеет функций, только данные).
Пожалуйста, прочитайте ниже, чтобы понять мою точную проблему (не так ясно из вышеупомянутого).
Я пишу скрипт, который создает графический интерфейс на основе дерева объектов js.Для этого я использую coffeescript.
Я хотел бы создать класс, который принимает json, и построить дерево.
window.GuiTree = class GuiTree
constructor:(json_GUI_tree)->
Но проблема в том, что я испытываю это.Я хотел бы добавить методы к этому классу как 'add_node'.Это добавляет новый узел в GuiTree.
Итак, я попробую это в Жасмин.
obj_before =
1:
type:"text"
name:"task"
label:"Task"
2:
type:"subsection"
sections:
3:
4:
type:"text"
name:"subtask"
label:"Subtask"
obj_after =
1:
type:"text"
name:"task"
label:"Task"
2:
type:"subsection"
sections:
3:
4:
type:"text"
name:"subtask"
label:"Subtask"
5:
type:"text"
name:"subtask"
label:"Subtask"
Где я добавил задачу 5 в дерево Gui
И я хотел бы проверить это следующим образом
task = new GuiTree(obj_before)
expect(task.add(3, node_5)).givesNewTree(obj_after)
Сопоставитель 'giveNewTree' является настраиваемым сопоставителем.
Проблема здесь !!Как сравнить древовидную структуру внутри задачи объекта с деревом obj_after, без необходимости сравнивать отдельные узлы в дереве.(один из них)
Мне кажется, что для сравнения деревьев нужно написать много кода, подверженного ошибкам.Поэтому мне может понадобиться написать тесты для тестирования.Есть ли умнее способ.