如何使用Mocha Chai测试Vue方法

时间:2019-11-03 17:25:45

标签: vue.js webpack mocha chai

这是MOCHA CHAI单元测试:users.spec.js:

import { expect } from "chai";
import { shallowMount } from "@vue/test-utils";
import Users from "@/components/Users.vue";

const wrapper = shallowMount(Users);

describe("Users test", () => {
  it("Displays nice hello message", () => {
    expect(wrapper.vm.$data.msg).to.equal("Welcome to Crypto Info");
  });
  it("users model is an array", () => {
    expect(wrapper.vm.$data.users).to.be.an("array");
  });
  it("getUsers() to be a function", () => {
    expect(wrapper.vm.$methods.getUsers()).to.be.a("function");
  });
});

我找不到第三次测试的正确语法。我已经尝试了很多东西。 $ methods.getUsers()无法正常工作。

  1) Users test
   getUsers() to be a function:
 TypeError: Cannot read property 'getUsers' of undefined
  at Context.it (dist\js\webpack:\tests\unit\users.spec.js:15:1)

能帮我吗? 谢谢。

2 个答案:

答案 0 :(得分:2)

该方法将简单地定义为wrapper.vm的属性,因此您可以使用以下方法验证该方法是否存在:

expect(wrapper.vm.getUsers).to.be.a("function")

答案 1 :(得分:1)

您可以做类似

的事情吗
const result = typeOf wrapper.vm.$methods.getUsers();

然后测试结果是否为值“功能”的字符串?

expect(result).to.equal("function");

对您有用吗?