如何使用karma mocha设置在vue组件中测试光标/插入位置?

时间:2017-12-13 14:24:33

标签: javascript unit-testing testing vue.js mocha

我正在尝试测试我的一个组件实现的后续方法:

fillTextarea(text, field) {
    let startPos = field.selectionStart;
    let before = field.value.substr(0, startPos);
    let after = field.value.substr(field.selectionEnd, (field.value.length - field.selectionEnd));
    field.value = before + text + after;
    this.content = field.value;
}

该方法将给定文本插入光标/插入位置的文本字段中。现在我的问题。我目前正在努力寻找一种在插入位置测试插入的方法。插入测试本身工作正常,但我现在只能在位置0测试插入。

我的测试设置是与mocha,karma和phantomjs的vue。 通常的单元测试设置在之前完成(cm是组件)。 $ data中的内容使用'test'初始化。这是我的尝试:

it('should add the given Text to the content area at the cursor position', (done) => {
    Vue.config.errorHandler = done;
    cm.$el.querySelector('#content').focus();
    cm.$el.querySelector('#content').setSelectionRange(4, 4);
    cm.fillTextarea(' example', cm.$el.querySelector('#content'));
    Vue.nextTick(() => {
      expect(cm.$el.querySelector('#content').value).to.equal('test example');
      done();
    });
  });

但似乎根本没有执行.focus()和.setSelectionRange()。 console.logs在调用setSelectionRange()之后立即确认selectionStart为0。我尝试了在google和stackoverflow上找到的不同浏览器的所有版本,甚至是jquery,但它总是将它插入到位置0。

我可以尝试的任何其他想法或我错过的内容?

0 个答案:

没有答案