如何使用Vue和Jest测试拖放

时间:2018-10-16 08:58:42

标签: vue.js drag-and-drop jestjs draggable

有没有一种很好的方法来测试玩笑与vue和vue.draggable的拖放?

我试图看看vue.draggable plugin中的测试,但是找不到任何内容。真的未经测试吗?

2 个答案:

答案 0 :(得分:0)

它似乎没有经过测试。

article显示了如何使用Jest执行拖动测试:

const getTableCells = () =>
  Array.from(mountNode.querySelectorAll("tr td:nth-of-type(1)"));

const createBubbledEvent = (type, props = {}) => {
  const event = new Event(type, { bubbles: true });
  Object.assign(event, props);
  return event;
};

const tableCells = getTableCells();
const startingNode = tableCells[0];
const endingNode = tableCells[2];

startingNode.dispatchEvent(
  createBubbledEvent("dragstart", { clientX: 0, clientY: 0 })
);

endingNode.dispatchEvent(
  createBubbledEvent("drop", { clientX: 0, clientY: 1 })
);

expect(getTableCells().map(cell => cell.textContent)).toEqual([
  "Bob",
  "Clark",
  "Alice",
]);

Shopify提供了一个非常著名的可拖动功能库:

https://github.com/Shopify/draggable

我看到他们已经过测试,也许您可​​以通过查看存储库来获得更多信息?

答案 1 :(得分:0)

检查:https://github.com/SortableJS/Vue.Draggable/tree/master/tests/unit

单元测试本身并不是伪造的拖放,而是有Sortable.js执行的模拟事件和DOM操作,以及对这些输入的vue.draggable反应。