Skip to content

michaeluskov/webdev-tasks-3

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Задача к лекции «Тесты» – «Тесты»

В качестве задания к лекции про тестирование, после продолжительного мозгового штурма, ме решили предложить вам написать тесты на одну из задач из первого семестра.

Для этого необходимо:

  1. Выбрать любимую задачу из первого семестра
  2. Написать тесты

Чтобы облегчить вам задание, мы решили выполнить первый пункт своими силами и выбрать любимую задачу за вас. Нам кажется, что больше всего вам понравилась девятая задача первого семестра, где вы реализовали прекрасную библиотеку «Flow». Которая предлагала следующий интерфейс:

flow.serial([func1, func2], callback)
Метод serial запускает функции [func1, func2] в массиве последовательно. Результат функции передается в следующую. Помимо результата предыдущей функции, она получает колбэк. Колбэк принимает первым параметром ошибку, а вторым – данные для следующей функции. Если любая из функций передает в колбэк ошибку, то следующая не выполняется, а вызывается основной колбэк callback.

flow
    .serial([
        function(next) {
            next(err, 'result1');
        },

        function(data, next) { // data === 'result1'
            next(err, 'result2');
        }
    ], function (err, result) { // result === 'result2'

    });

flow.parallel([func1, func2], callback)
Метод parallel запускает функции [func1, func2] в массиве параллельно. Результат собирается в массив, который передается в основной callback при завершении всех функций. Функции func1, func2 тоже принимают колбэк. Колбэк принимает первым параметром ошибку, а вторым – данные для конечного массива.

flow
    .parallel([
        function(next) {
            next(err, 'result1');
        },

        function(next) {
            next(err, 'result2');
        }
    ], function (err, results) { // results === ['result1', 'result2']

    });

flow.map(['value1', 'value2'], func, callback)
Метод map запускает функцию func с каждым значением ['value1', 'value2'] параллельно. Результат собираются в массив, который передаётся в основной callback при завершении всех запусков.

Дополнительное задание

Покрыть тестами дополнительное задание:

flow.makeAsync(func)
Метод превращает синхронную функцию func в асинхронную.

flow.parallel([func1, func2, func3, func4], limit, callback)
Метод аналогичен parallel, но в один момент времени могут выполняться не больше limit функций, если какая-то функция завершилась можно запускать следующую. Важно следить, чтобы количество одновременно запущенных функций было равно limit (если функций осталось мало, то меньше limit).

Всем тесты, котаны!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published