Email or username:

Password:

Forgot your password?
pongo

В языках Zig и Rust можно писать тесты прямо в файле с исходным кодом. После некоторой боли и унижений (я пользователь Windows) удалось сделать такое же в Node.js. Заодно проверил как работают тесты из коробки (недавно появились).

Написал об этом статью: text.is/PJ9V

7 comments
gleb.zhulik

@pongo чтобы навигация по файлу и даже базовый Find&Replace в кошмар превратились? Какие ещё задачи это решает?

pongo

@zhulik упрощает тестирование приватных методов (не нужно их экспортировать). плюс, все тесты под рукой (а не где-то там)

gleb.zhulik

@pongo тестирование приватных методов это в принципе сомнительная практика, приватный метод - implementation detail, и тесты об их существовании вообще знать не очень должны. Кроме того, тесты часто занимают в разы больше места, чем реализация, особенно если это что-то BDD-подобное. В этом случае уместнее говорить о включении имплементации в файл с тестами. И вот ещё: в релизном билде эти тесты не нужны(как и тестовые импорты и зависимости), и нужно костылить их вырезание

pongo

@zhulik у такого подхода есть и плюсы, и минусы; во многом дело вкуса. мне было интересно попробовать, но в рабочих проектах я это не буду использовать, по крайней мере пока что — слишком уж непривычно.

зато мне показалось правильным располагать модульные тесты как можно ближе к исходному коду (т.е. в той же папке, а не в отдельной папке с тестами).

gleb.zhulik

@pongo "как можно ближе" довольно субъективная метрика. Переключение между имплементацией и тестами в другом файле и/или папке по хоткею это достаточно близко? Или это дальше чем скролл по одному файлу? Или ближе?

pongo

@zhulik тоже пользуюсь такими хоткеями. но если тестовый файл находится в другой папке, то придется копировать там структуру директорий — как-то это не очень.

gleb.zhulik

@pongo тот же самый хоткей ее за тебя создаёт в rubymine+rspec. Для других редакторов/ide подобное тоже должно быть

Go Up