vue-cli单元化测试(更新中)

  1. 利用jest进行测试
  2. 新建jest.config.js
module.exports = {
 moduleFileExtensions: [ 'js', 'jsx', 'json', 'vue' ],
 transform: {
   '^.+\\.vue$': 'vue-jest',
   '.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$': 'jest-transform-stub',
   '^.+\\.jsx?$': 'babel-jest'
 },
 transformIgnorePatterns: [
   '/node_modules/'
 ],
 moduleNameMapper: {
   '^@/(.*)$': '<rootDir>/src/$1'
 },
 snapshotSerializers: [
   'jest-serializer-vue'
 ],
 testMatch: [
   '**/__tests__/**/*.(js|jsx|ts|tsx)'
 ],
 testPathIgnorePatterns:[
 	'\.eslintrc\.js'
 ],
 testURL: 'http://localhost/',
 watchPlugins: [
   'jest-watch-typeahead/filename',
   'jest-watch-typeahead/testname'
 ]
}

  1. HelloWorld.test.js
import { shallowMount,mount } from '@vue/test-utils'
import HelloWorld from '@/components/HelloWorld.vue'
describe('HelloWorld.vue', () => {
  it('renders props.msg when passed', () => {
    const msg = 'new message'
    const wrapper = shallowMount(HelloWorld, {
      propsData: { msg }
    })
    //expect(wrapper.find('.mmm').text()).toMatch(msg)
    //expect(wrapper.props('msg')).toEqual(msg)
    /*
     wrapper.setProps({msg:'hello'})
     expect(wrapper.props('msg').toEqual('hello'))
     * */
    expect(wrapper.findAll('.mmm').length).toBe(2)
  })
  
  it('快照测试,及时捕获ui的变化',()=>{
  	const wrapper = shallowMount(HelloWorld, {
      propsData: { msg:'Hello' }
    })
  	expect(wrapper).toMatchSnapshot();
  })
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值