Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 October 08

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Если она не инжектится через DI или как-то еще, то это уже не зависимость?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Мне кажется вы не осознаете что минимальным юнитом для тестирования в JS является модуль :)
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
а не функция
источник

q

qkation@DevelopQKati... in NodeUA - JavaScript and Node.js in Ukraine
😱
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
А что в том конкретном примере является модулем? Файлик с набором функций?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
ну да, а что в js есть другие модули? :)
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Значит если я кину все зависимости в один файл, то тест можно смело называть юнит тестом?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
да, ведь вы тестируете поведение модуля
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
структура модуля для вас черный ящик
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Файлик может состоять из модулей
Модули могут состоять из файликов

Юнит - неделимый, атомарный минимум дающий свой интерфейс миру
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
кря? мы точно про js говорим
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Мы говорим про тесты а не джс
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
вроде есть четкое определение что в js является модулем. Я им оперирую
источник

A

Alexander in NodeUA - JavaScript and Node.js in Ukraine
Хорошо. Тогда еще пример:

https://github.com/vercel/next.js/blob/canary/test/unit/router-add-base-path.test.ts

Тестируется addBasePath, которая зависит от addPathPrefix, которая зависит от normalizePathTrailingSlash (экспортируется из другого файла)

Это тоже юнит тест?
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
формально - нет. Но много где принято (к примеру у нас в gitlab так) правило, что функции, которые являются чистыми и имеют покрытие собственными тестами можно не мокать при тестировании
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Классическая школа считает, что изолированы друг от друга должны быть сами юнит-тесты, а не юниты. Кроме того, тестируется единица поведения, а не единица кода. Таким образом, только совместные (shared) зависимости должны заменяться тестовыми заглушками. Совместными называются зависимости, предоставляющие тестам возможность влиять на результаты друг друга.

https://www.manning.com/books/unit-testing
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
Единица поведения пока звучит отлично
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
о, сейчас начнем обсуждать детройт против лондона :)
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
холивар старее чем я
источник

VL

Vanya Leyn in NodeUA - JavaScript and Node.js in Ukraine
А вы на чьей стороне?
источник