vue.js - vue/test-utils 和 jest 单元测试问题
问题描述
我试图让这个单元测试与@vue/test-utils 和 jest 一起工作。出于某种原因,它没有找到 css 类 .user-list__button 并一直说 .find 不是函数。任何帮助都会很棒。
单元测试:
import Vuex from 'vuex'
import { shallowMount, createLocalVue } from '@vue/test-utils'
import UserList from '@/components/UserList.vue'
import mockEntries from '@/store/mock.js'
let store;
const localVue = createLocalVue()
localVue.use(Vuex)
function mountComponent() {
return shallowMount(UserList, {
localVue,
store,
});
}
describe('UserList.vue', () => {
beforeEach(() => {
store = new Vuex.Store({
state: {
phonebookEntries: [...mockEntries]
}
});
});
it('renders UserList properly', () => {
const component = mountComponent();
const deleteEntry = jest.fn()
expect(component.name()).toEqual('UserList');
component.find('.user-list__button').first().simulate('click');
expect(deleteEntry.mock.calls.length).toEqual(1);
})
})
HTML
template>
<section class="user-list">
<div class="user-list__listings">All Listings</div>
<ul class="user-list__ul">
<li class="user-list__data" v-for="(entry, index) in phonebookEntries" :key="index">
<span class="user-list__entry"><b>{{entry.lastName.toUpperCase()}}</b> ,</span>
<span class="user-list__entry">{{entry.firstName.toUpperCase()}}</span>
<span class="user-list__entry"> ...................... </span>
<span class="user-list__entry">{{entry.phone}}</span>
<button @click="deleteEntry(index)" class="user-list__entry user-list__button" type="button" id="deleteBtn">delete</button>
</li>
</ul>
</section>
</template>
解决方案
推荐阅读
- java - 不断收到此错误:“变量总计可能尚未初始化”
- python - 在 Python 中编辑 print 的输出格式
- matlab - 在 MATLAB 上查找矩阵的 m 线性独立列
- cocoapods - iOS Siri Intents 扩展“我没有看到这样的应用程序。你需要下载一个。”
- r - 正确子集列表以替换元素值
- database - oracle数据库,将数据文件添加到现有表空间时出错
- amazon-web-services - 我需要“Linux 的 Windows 子系统”来将 python 应用程序部署到 Windows 操作系统的 aws elastic beanstalk 吗?
- php - 在线托管 PHP - 将 UDP 发送到本地计算机
- haskell - foldr 类型签名与 foldl one 不同有什么原因吗?
- python - Jenkins 向我发送错误:ImportError: Import by filename is not supported