kirill.mokevnin [01:17] кстати, у хекслета ведь скрытая цель приучить людей к тестированию), вы все волей не волей сталкиваетесь с тестами и кто то даже изучает что там происходит, или что в итоге надо сделать.
kirill.mokevnin [01:18] Так вот эти тесты в нашей практике, они помогли кому то понять тестирование? Начать писать тесты?
ivanlemeshev [01:20] да, периодически в них смотрю, но писать не начал (
pgavrilov [01:21] да тема супер, давайте на следующую пятницу
tuscen [01:21] Сам пока тесты не писал еще. Когда начинаю читать про разные виды тестирования, голова кругом идет от количества разных видов тестов. Хотелось бы почитать где-нибудт систематизированную инфу по разным видам тестов, чтобы в голове уложилось. Но в хекслете при выполнении заданий ими из терминала пользуюсь. NEW MESSAGES
Новые уроки на ХекслетеBOT [01:23] Эрланг на практике. Application. / Эрланг на практике Эрланг на практике - Курсы - Hexlet.io Erlang – функциональный язык программирования со строгой динамической типизацией, предназначенный для создания распределённых вычислительных систем. Разработан и поддерживается компанией Ericsson. Курс расчитан на программистов, имеющих опыт веб-разработки на любом языке программирования, но не знакомых или слабо знакомых с Erlang. Цель курса -- дать практические навыки работы с Erlang/OTP и познакомить с инфраструктурой вокруг языка: инструментами и библиотеками. (14KB)
kirill.mokevnin [01:24] “количества разных видов тестов” грубо говоря для программиста существует только два вида тестов
v.manenkov [01:24] @tuscen: Разработчик должен писать модульные тесты к своему коду, ну и интеграционные за некоторым исключением.
kirill.mokevnin [01:25] интеграционные и все остальные
kirill.mokevnin [01:25] не важно что их называют юнит функциональными и еще как
kirill.mokevnin [01:26] в реальности граница не существенна и часто не видима
v.manenkov [01:27] А вообще о тестировании у яндекса есть серии лекций на YouTube "Школа автоматизации процессов разработки" и "Школа тестирования баннерной системы". Смотрел давно, но очень понравились (edited)
kirill.mokevnin [01:27] ну а дальше просто берете популярный фреймворк для тестирования в вашем языке и вперед
tuscen [01:28] Я правильно понимаю: юнит тестирование — тестируем работу отдельного модуля, интеграционное тестирование — тестируем совместную работу сразу нескольких модулей?
kirill.mokevnin [01:28] в конечном итоге все сводится к assert MyMethod(3) == 3
kirill.mokevnin [01:28] если вернет 3 то тест прошел, не вернет, упал
kirill.mokevnin [01:29] неа
kirill.mokevnin [01:29] ну точнее так, под интеграционным в первую очередь понимают acceptance тесты
kirill.mokevnin [01:30] эти тесты в вебе выглядят так
kirill.mokevnin [01:30] var Nightmare = require('nightmare'); new Nightmare() .goto('http://yahoo.com') .type('input[title="Search"]', 'github nightmare') .click('.searchsubmit') .run(function (err, nightmare) { if (err) return console.log(err); console.log('Done!'); });
Yahoo A new welcome to Yahoo. The new Yahoo experience makes it easier to discover the news and information that you care about most. It's the web ordered for you.
kirill.mokevnin [01:30] то есть вы не функции вашего кода вызываете, а ходите на сайт и кликаете
kirill.mokevnin [01:31] все остальные тесты это тесты кода
kirill.mokevnin [01:31] вы вызываете функции получаете результат и сравниваете
kirill.mokevnin [01:31] вот и все
kirill.mokevnin [01:31] “тестируем работу отдельного модуля, интеграционное тестирование — тестируем совместную работу сразу нескольких модулей?” это сферическое тестирования в вакууме
kirill.mokevnin [01:31] такого нет
kirill.mokevnin [01:32] и по такому признаку ничего не делится на самом деле
tuscen [01:32] То есть интеграционное тестирование это когда при помощи кода имитируем работу приложения и убеждаемся, что оно не падает и не возникает ошибок?
kirill.mokevnin [01:32] да
kirill.mokevnin [01:32] интеграционное это не тестирования самого кода
kirill.mokevnin [01:32] это тестирования системы
kirill.mokevnin [01:32] вы не вызываете функции кода
kirill.mokevnin [01:32] не создаете классы
kirill.mokevnin [01:33] вы дергаете апи, ходите по страницам кликаете, заполняете отправляете формы.
kirill.mokevnin [01:33] все остальные виды (без разницы как их называют), это тесты конкретно кода
kirill.mokevnin [01:33] и всегда в конечном итоге выглядят примерно так assert MyMethod(3) == 3
kirill.mokevnin [01:34] даже если этот метод в базу пойдет
kirill.mokevnin [01:34] если вы посмотрите тесты по курсу реакта на хекслете, там интеграционные тесты
kirill.mokevnin [01:34] потому что сама задача не про реализацию функций, реализовать можно вообще по разному, единственное чтоможно там проверять это то что система корректно работает
v.manenkov [01:35] Кстати, мне кажется вот хороший пример, чтобы увидеть что такое тесты на практике http://stackoverflow.com/a/30655448/1943863
Update value of a nested dictionary of varying depth I'm looking for a way to update dict dictionary1 with the contents of dict update wihout overwriting levelA dictionary1={'level1':{'level2':{'levelA':0,'levelB':1}}}
kirill.mokevnin [01:36] так все кто тут видят эти тесты на практике каждый день в практике хекслета)
kirill.mokevnin [01:36] и запускают их каждый день
v.kolesnikov [01:36] кто-то еще не использует тесты?)
v.manenkov [01:38] Я пишу тесты только, когда мой код кто-то увидит в будущем. Если пишу что-то чисто для себя, то без тестов.
v.kolesnikov [01:42] не, я переехал на тесты на пмж, везде и всегда. Мне кажется что иногда люди не улавливают, что тесты - это не обязательно какая-то бибилотека к языку, можно же просто писать в отдельном файле ассерты - они есть в любом языке, а где нет - реализовать самому, этоже просто if true\false. И таким образом уже тестировать - в одном файле код, в другом тесты. Это же очень удобно! Ведь в любом случае вы код проверяете всегда, пока пишите его, пишете в конце файла всякие foobar функции проверяющие код, так почему бы это не сделать тестами?
но с другой стороны, я помню себя в прошлом - сколько не говори о пользе тестов, пока сам не станешь их использовать, ничего не поймешь. Просто нет никаких средств чтобы реально описать все преимущества и получаемоё удовольствие от тестов.
tuscen [01:47] Ну, после хекслета и возможности проверить правильность выполнения задания одной лишь командой make test, некоторое пониманием удобства тестов приходит.
v.kolesnikov [01:48] @v.manenkov: кстати на тему "если мой код кто-то увидит в будущем" - вы этого никогда не можете знать. Просто НИКОГДА.
tuscen [01:48] Надо теперь только приучить себя самому их писать вместо фубаров в конце файла )