#typescript #testing
Вопрос:
Библиотека тестирования, используемая здесь, — это открытые веб-компоненты, основанные на Мокко и Чае.
У меня возникли проблемы с тестированием этой debounce
функции, так как я новичок в тестировании и, похоже, не совсем понимаю, что нужно тестировать. Я пытаюсь проверить, что result
переменная будет обновляться по истечении этого debounce
периода, но ничего из того, что я пытаюсь , кажется, не работает ( sync/await
, promises
, timeouts
, вы называете это).
Следующее проходит, но я знаю, что это ложноположительный результат, так как ожидаемое значение может быть любым, где оно проходит.
Отменить:
export function debounce(func: { (...args: unknown[]): void }, wait: number) {
let timeout: NodeJS.Timeout
return function executedFunction(...args: unknown[]) {
const later = () => {
clearTimeout(timeout)
func(...args)
}
clearTimeout(timeout)
timeout = setTimeout(later, wait)
}
}
Тесты:
import { expect } from '@open-wc/testing'
import { debounce } from './utils'
describe('debounce()', () => {
it('Executes callback after wait period.', (done) => {
const waitTime = 250
let result = false
debounce(() => {
result = true
expect(result).to.equal(true)
}, waitTime)
setTimeout(done, waitTime * 2)
})
})
Любая помощь будет глубоко признательна.