toast组件单元测试

  1. 先看是否存在
    describe('Toast', () => {
        it('存在.', () => {
            expect(Toast).to.be.exist
        })
    });
  1. 看属性,我们要测 ToastVue 和 plugin.js
    describe('Toast', () => {
    it('存在.', () => {
        expect(Toast).to.be.exist
    })
    describe('props',function () {
        this.timeout(15000) // 设置15秒关闭
        it('接收 autoClose', (done)=>{
        let div = document.createElement('div')
        document.body.appendChild(div)
        const Constructor = Vue.extend(Toast)
        const vm = new Constructor(
            {
            propsData:{
                autoClose: true,
                autoCloseDelay: 1
            }
            }
        ).$mount(div)
        setTimeout(()=>{
            expect(document.body.contains(vm.$el)).to.eq(false)
            done()
        },6000)
        })
    })
    });
    // 进一步优化,变成关闭的时候进行测试,不需要设置6秒
    vm.$on('close',()=>{
        expect(document.body.contains(vm.$el)).to.eq(false)
        done()
    })

  1. 报异常错误,要用 yarn run dev-test 代替 npm run dev-test
  2. 测试 closeButton。
    it('接收 closeButton', ()=>{
         const callback = sinon.fake();
      const Constructor = Vue.extend(Toast)
      const vm = new Constructor({
        propsData: {
          closeButton: {
            text: '关闭吧',
            callback,
          },
        }
      }).$mount()
      let closeButton = vm.$el.querySelector('.close')
      expect(closeButton.textContent.trim()).to.eq('关闭吧')
      closeButton.click()
      expect(callback).to.have.been.called
    })

这里测试后的时候出现 warning,Cannot read property 'style' of undefined,通过修改 toast.vue 中代码解决

    methods: {
        updateStyles () {
            this.$nextTick(() => {
                if(this.$refs.toast && this.$refs.line){
                    this.$refs.line.style.height =
                    `${this.$refs.toast.getBoundingClientRect().height}px`
                }
            })
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值