Size: a a a

NodeUA - JavaScript and Node.js in Ukraine

2021 March 03

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Тесты писать
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Alexander
1. Для тех же самых.
2. Доку проверяет разработчик. Соблюдение контракта - тесты. Надеятся на тайпскрипт в этом плане это как полагаться на калитку в чистом поле без забора
3. Значит в этом пункте тайпскрипт бесполезен. Вычеркиваем.
2. Описать контракт на ts - пару строчек. Написать кучу тестов для этого на читом жс. Что по времени и по усилиям?
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Alexander
1. Для тех же самых.
2. Доку проверяет разработчик. Соблюдение контракта - тесты. Надеятся на тайпскрипт в этом плане это как полагаться на калитку в чистом поле без забора
3. Значит в этом пункте тайпскрипт бесполезен. Вычеркиваем.
3. Ну если вы так сказали, то всё. Многие с вами не согласятся.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
2. Описать контракт на ts - пару строчек. Написать кучу тестов для этого на читом жс. Что по времени и по усилиям?
На сколько-нибудь сложный контракт хоть чуть тесты пишутся быстрее
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Там думать не надо
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
При этом тесты описывают поведение а не типы
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
2. Описать контракт на ts - пару строчек. Написать кучу тестов для этого на читом жс. Что по времени и по усилиям?
Вот контракт на js ({ field1: 'string', field2: { array: 'number', required: false } })
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
На сколько-нибудь сложный контракт хоть чуть тесты пишутся быстрее
Даже не представляю, как можно это сделать быстрее. Реализации со сложной инфраструктурной логикой, с зависимостями. Легко на них тесты писать? А если реализаций несколько.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
Даже не представляю, как можно это сделать быстрее. Реализации со сложной инфраструктурной логикой, с зависимостями. Легко на них тесты писать? А если реализаций несколько.
Да, легко. И если реализаций несколько то это ещё лучше - ваши тесты должны тестировать поведение а не нюансы реализации
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Вот контракт на js ({ field1: 'string', field2: { array: 'number', required: false } })
Какие тулы проверят этот контракт? Какие тулы помогут мне соблюдать этот контракт? Или все в голове, как вы любите? У меня сколько в голову не влезает.
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Заодно получите контракт работы с внешними зависимостями для каждой реализации
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Timur Shemsedinov
Вот контракт на js ({ field1: 'string', field2: { array: 'number', required: false } })
Это простой, а сложные описываются или императивно или табличными тестами
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Illya Klymov
Заодно получите контракт работы с внешними зависимостями для каждой реализации
Это я и хочу проверять в тестах: логику кода, и взаимодействие с зависимостями. А не контракты
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Вот, кстати, примеры табличных тестов https://github.com/metarhia/common/blob/master/test/array.js
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Ими декларативно можно описывать не очень сложные случаи
источник

VS

Vlad Sobenko in NodeUA - JavaScript and Node.js in Ukraine
Если честно, то не понятно особо ничего с этих тестов.
источник

YZ

Yaroslav Zhymkov in NodeUA - JavaScript and Node.js in Ukraine
+1 код оч плохо читаемый
источник

TS

Timur Shemsedinov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
Если честно, то не понятно особо ничего с этих тестов.
В массиве все аргументы кроме последнего, это результат
источник

IK

Illya Klymov in NodeUA - JavaScript and Node.js in Ukraine
Vlad Sobenko
Это я и хочу проверять в тестах: логику кода, и взаимодействие с зависимостями. А не контракты
Видимо мы разные вещи понимаем под словом контракт
источник