Skip to content

Instantly share code, notes, and snippets.

@ivanlemeshev
Last active August 26, 2015 19:48
Show Gist options
  • Save ivanlemeshev/8c5a475cf1714eb4ef0f to your computer and use it in GitHub Desktop.
Save ivanlemeshev/8c5a475cf1714eb4ef0f to your computer and use it in GitHub Desktop.
тестирование

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] Надо теперь только приучить себя самому их писать вместо фубаров в конце файла )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment