В том то и дело, мокать тестируемый класс - это не самая лучшая практика, да иногда приходится, но лучше стараться этого не делать. Дело в том, что мок метода вносит, помимо заданного поведения еще и источник ошибок. Приведу пример допустим вы замокали getSql, тесты методов, использующие этот мок сработают корректно. Вы даже покроете неспосредствнно getSql и проверите, что он возвращает правильную sql-ину. Пройдет время и вы измените getSql упадет только тест, проверяющий getSql, остальные - нет.
2. Инстансы db и timedate стоит передавать в конструктор явно, а от статики отказываться, на сколько это возможно.
class Base {
label: string = 'Лейбл'
getLabel() {
return 'Это ' + this.label
}
}
registerComponents(fieldTypes: string[]) {
console.log('Вошли в регистрацию', fieldTypes)
fieldTypes.forEach(type => {
const compName = getComponentNameForField('Lv', type)
if (typeof this.$options.components[compName] === 'undefined') {
console.log('Регистрируем '+ compName)
this.$options.components[compName] = () => import('components/fields/' + type + '/' + compName + '.vue')
} else {
console.log('Уже есть '+ compName)
}
})
}
const k = toKey as keyof typeof dest
toKey as keyof typeof dest