首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuejs测试- Ava -更改propData

Vuejs测试- Ava -更改propData
EN

Stack Overflow用户
提问于 2017-09-08 17:09:01
回答 1查看 257关注 0票数 0

我正在尝试更改传递到组件中的propData,以监视和检查组件。

我期望此代码块中的最后一个控制台日志为5,但它仍然是2。

代码语言:javascript
复制
import Vue from 'vue';
import test from 'ava';

import AnimateNumber from './../src/components/AnimateNumber.vue';

function instance(propsData) {
    let N = Vue.extend(AnimateNumber);
    return new N({propsData});
}

test('..', t => {

    let vm2 = new Vue({
        data: {
            a: 2
        }
    });

    let vm = instance({number: vm2.a}).$mount();

    // vm.displayNumber is just a copy of the number prop passed in.
    console.log(vm.displayNumber); // 2

    // Set to 5
    Vue.set(vm2, 'a', 5);

    console.log(vm2.a); // 5

    Vue.nextTick(function () {
        console.log(vm.displayNumber); // 2 (Expected 5)
    });

});
EN

回答 1

Stack Overflow用户

发布于 2017-09-10 02:12:44

我会用汽油来测试vue js组件https://github.com/MGMonge/petrol

在这种情况下,您的测试将是

代码语言:javascript
复制
import AnimateNumber from './../src/components/AnimateNumber.vue';
import VueTestCase from "petrol/core/VueTestCase.js";

export default class AnimateNumberTest extends VueTestCase {

    /** @test */
    it_display_the_correct_number() {
        this.SUT = this.mount(AnimateNumber, {number: 2});

        this.assertEquals(2, this.SUT.displayNumber);

        this.SUT = this.mount(AnimateNumber, {number: 5});

        this.assertEquals(5, this.SUT.displayNumber);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46112747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档