【问题标题】:vuejs click testing mouse eventvuejs点击测试鼠标事件
【发布时间】:2019-01-04 15:29:12
【问题描述】:

我有一个带有以下内容的模板

            <button type="button" id="alogin" class="btn btn-primary btn-raised btn-block btn-lg" @click="login()">Sign In</button>

登录功能很长,但由

组成
login() {
    this.error = 'none';
    this.error_message = null;
    const self = this;
    authentication.login(config, self.id_number, self.password, (err, result) => {
      if (err) {

      } else {

          self.startSession();
        }

    });
  }

我尝试在设置后测试点击登录按钮

it('tries to login', () => {
  LoginComponent.id_number = '293io090';
  LoginComponent.password = 'password';

expect(LoginComponent.$el.querySelector('#alogin').click()).to.equal(true);

但最终变得不确定。我使用 vuejs 测试工具来查找('#allogin'),但结果仍然相同。卡住了

【问题讨论】:

  • 尝试删除@click="login()"中的()

标签: vue.js chai vue-test-utils


【解决方案1】:

如果您使用来自vue-test-utilsmountshallowMount,那么您应该知道这些函数为您的组件返回Wrapperfind 方法也返回包装器。所以你可以像这样调用点击处理程序:

LoginComponent.find('#alogin').trigger('click')

【讨论】: