简单的断言

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

  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. })