Unit testing Vuex中的单元测试将断言错误抛出为等于{Object(type,text)}

Unit testing Vuex中的单元测试将断言错误抛出为等于{Object(type,text)},unit-testing,vue.js,mocha.js,chai,vuex,Unit Testing,Vue.js,Mocha.js,Chai,Vuex,到目前为止,单元测试Vuex操作一直是一场噩梦,我似乎无法理解它到底在寻找什么。我正在跟踪并使用他们的动作助手功能 我有一个简单的操作,可以向按钮添加文本 createButton({ commit, state }, payload) { let btnString = ''; if (payload.hasCookie) { btnString = 'Welcome back'; } else if (payload.isLoggedIn) {

到目前为止,单元测试Vuex操作一直是一场噩梦,我似乎无法理解它到底在寻找什么。我正在跟踪并使用他们的动作助手功能

我有一个简单的操作,可以向按钮添加文本

createButton({ commit, state }, payload) {
    let btnString = '';

    if (payload.hasCookie) {
        btnString = 'Welcome back';
    } else if (payload.isLoggedIn) {
        btnString = 'Sign out';
    } else {
        btnString = 'Sign up';
    }

    commit({ type: 'CREATE_BUTTON_TEXT', text: btnText });
},
在我的测试中

describe('Create Button Text', () => {
        it('should render the buttons string ', (done) => {
            const expectedString = 'Welcome back';
            const mock = {
                hasCookie: true,
                isLoggedIn: false,
            };

            testAction(actions.createButton, mock, state, [
                { type: 'CREATE_BUTTON_TEXT', text: expectedString },
            ], done);
        });
    });
它返回的
AssertionError:CREATE_BUTTON_TEXT'应该等于{Object(type,TEXT)}
。。。我是否使用
expectedString
正确地提供了预期的
文本
?对此问题的任何指导都将不胜感激


(按照文档中的建议使用Mocha+Chai)。

您的提交语法似乎有误。如果使用了
testAction
帮助程序,则参数
expectedMutations
需要一个具有类型和负载的对象列表。 以下代码适用于我:

createButton({ commit, state }, payload) {
  let btnString = ''

  if (payload.hasCookie) {
    btnString = 'Welcome back'
  } else if (payload.isLoggedIn) {
    btnString = 'Sign out'
  } else {
    btnString = 'Sign up'
  }

  commit('CREATE_BUTTON_TEXT', btnString)
}
试验方法:

describe('Create Button Text', () => {
 it('should render the buttons string ', (done) => {
  const expectedString = 'Welcome back'
  const mock = {
   hasCookie: true,
   isLoggedIn: false
  }

  testAction(actions.createButton, mock, {}, [
   { type: 'CREATE_BUTTON_TEXT', payload: expectedString }
  ], done)
 })
})