У меня нет особых навыков в модульном тестировании, но я хочу, чтобы он улучшил мой проект в будущем. В данном случае я не могу полностью протестировать свой компонентный метод:
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 функции и все сделано. Можете ли вы помочь мне, пожалуйста?