Как проверить сервисную функцию в методе компонента (VueJs & Jest) - PullRequest
0 голосов
/ 09 марта 2020

У меня нет особых навыков в модульном тестировании, но я хочу, чтобы он улучшил мой проект в будущем. В данном случае я не могу полностью протестировать свой компонентный метод:

methods: {
    ping () {
      this.pingLoading = true
      const commandService = new CommandService()
      this.typeAddress = 'ip'

      if (this.typeAddress) {
        commandService.ping(this.url, this.ipAddress, this.typeAddress).then(res => {
          this.pingLoading = false
          console.log(res)
          if (!res.stdout) {
            this.$emit('error', 'Network is unreachable !')
          } else {
            console.log('HERE')
            this.$emit('success', res.stdout.toString())
          }
        }).catch((error) => {
          this.pingLoading = false
          this.$emit('error', error.toString())
        })
      }
    }
  }

Я хотел бы проверить возвращение commandService.ping (), который был смоделирован, но, очевидно, макет не работает. ..

import { mount } from '@vue/test-utils'
import Ping from '../../../src/components/subcomponentsActions/Ping'
import Vuetify from 'vuetify'
import Vue from 'vue'
import CommandService from '../../../src/services/Command.service'
jest.mock('../../../src/services/Command.service')

Vue.use(Vuetify)
const vuetify = new Vuetify()

describe('Ping.vue', () => {
  let wrapper
  let mockMethods = {
    ping: jest.fn(async () => Promise.resolve('test'))
  }

  beforeEach(() => {
    jest.clearAllMocks()

    wrapper = mount(Ping, {
      vuetify,
      localVue: Vue,
      sync: false,
      methods: mockMethods,
      propsData: {
        title: 'PING',
        content: 'Test communication with a host',
        url: 'http://backend:8087'
      }
    })
  })

  afterEach(() => {
    wrapper.destroy()
  })

  test('Should Test Main Function', async () => {
    CommandService.ping.mockImplementation(() => Promise.resolve('datas'))
    await wrapper.vm.ping()
    expect(CommandService.ping).toHaveBeenCalled()
  })
})

Так что в настоящее время я просто хочу знать, как смоделировать этот метод класса для проверки возврата обещания в моем компоненте?

В настоящее время это не работа, но у меня уже есть ложный топор ios функции и все сделано. Можете ли вы помочь мне, пожалуйста?

...