• 简单的断言

    简单的断言

    你不必为了可测性在组件中做任何特殊的操作,导出原始设置就可以了:

    1. <template>
    2. <span>{{ message }}</span>
    3. </template>
    4. <script>
    5. export default {
    6. data () {
    7. return {
    8. message: 'hello!'
    9. }
    10. },
    11. created () {
    12. this.message = 'bye!'
    13. }
    14. }
    15. </script>

    然后随着 Vue 导入组件的选项,你可以使用许多常见的断言 (这里我们使用的是 Jasmine/Jest 风格的 expect 断言作为示例):

    1. // 导入 Vue.js 和组件,进行测试
    2. import Vue from 'vue'
    3. import MyComponent from 'path/to/MyComponent.vue'
    4. // 这里是一些 Jasmine 2.0 的测试,你也可以使用你喜欢的任何断言库或测试工具。
    5. describe('MyComponent', () => {
    6. // 检查原始组件选项
    7. it('has a created hook', () => {
    8. expect(typeof MyComponent.created).toBe('function')
    9. })
    10. // 评估原始组件选项中的函数的结果
    11. it('sets the correct default data', () => {
    12. expect(typeof MyComponent.data).toBe('function')
    13. const defaultData = MyComponent.data()
    14. expect(defaultData.message).toBe('hello!')
    15. })
    16. // 检查 mount 中的组件实例
    17. it('correctly sets the message when created', () => {
    18. const vm = new Vue(MyComponent).$mount()
    19. expect(vm.message).toBe('bye!')
    20. })
    21. // 创建一个实例并检查渲染输出
    22. it('renders the correct message', () => {
    23. const Constructor = Vue.extend(MyComponent)
    24. const vm = new Constructor().$mount()
    25. expect(vm.$el.textContent).toBe('bye!')
    26. })
    27. })