У меня есть класс, который предназначен для использования в качестве репозитория для выполнения запросов AJAX с использованием axios:
export default class SomeRepository {
getEncryptedValue (value) {
return axios.get('http://localhost/api/v1/encrypt')
}
}
И у меня есть компонент, который вызывает метод этого репозитория внутри свойства methods
в компонентеПримерно так:
<template>
...
</template>
<script>
import SomeRepository from '@/classes/SomeRepository'
export default {
data () {
return {
value: '',
result: ''
}
},
methods: {
encrypt () {
let someRepo = new SomeRepository()
someRepo.getEncryptedValue(this.value)
.then(response => {
this.result = response.data.result
})
}
}
}
</script>
Как передать SomeRepository
в качестве зависимости?Моя цель состоит в том, чтобы я хотел имитировать его в своих модульных тестах.
Я ищу простое решение, предпочтительно такое, которое не включает сторонние библиотеки или шаблон.
Я имеюпопытался также сделать:
import Vue from 'vue'
import SomeRepository from '@/classes/SomeRepository'
Vue.use(SomeRepository)
// and
Vue.use(new SomeRepository())
, который явно не работает (честно говоря, я не ожидал, что они будут).Я также пытался следовать этой статье https://codeburst.io/dependency-injection-with-vue-js-f6b44a0dae6d, но мне не очень понравился подход к созданию миксина каждый раз, когда я хочу использовать зависимость.
Я также рассматривал передачу его какprop, но не был уверен, где создать экземпляр объекта, прежде чем передать его.