
Pavel
07.07.2016
09:46:50

Антон
07.07.2016
09:46:59
inline BDDить не получалось пока

yopp
07.07.2016
09:47:04
ну так ты и написал T(B)DD
я выбираю BDD

Google

Антон
07.07.2016
09:47:15
ну значит T(B?)DD

yopp
07.07.2016
09:47:16
начинать с тестов глупо
я имею ввиду когда у тебя нет идеи сформировашейся

Антон
07.07.2016
09:47:34

yopp
07.07.2016
09:47:49
ты не путай: накидать рабочий класс
и накидать интерфейс класса

Антон
07.07.2016
09:48:11
а я не путаю пока, я не утверждал ничего

yopp
07.07.2016
09:48:21
ты утверждал что спорное утверждение :)

Антон
07.07.2016
09:48:33
начинать с тестов глупо - спорное утверждение

yopp
07.07.2016
09:48:47
начинать с тестов когда ты не понимаешь как оно вообще будет выглядеть — глупо
потому что тестировать ещё нечего

ojab
07.07.2016
09:48:59

yopp
07.07.2016
09:49:17

Google

Антон
07.07.2016
09:49:21

Michael
07.07.2016
09:49:38
когда я на стадии поиска решения, то я начинаю с кода, а если уже все продуманно и я четко знаю, что я хочу, тогда я начинаю с тестов

ojab
07.07.2016
09:49:45

yopp
07.07.2016
09:49:49
TDD подразумевает что ты вместе с логикой сразу пишешь тесты

ojab
07.07.2016
09:50:09
гугл даже что-то находит по запросу "рекурсивное тестирование"

yopp
07.07.2016
09:50:23
тесты это штука которая должно помогать тебе определить что всё работает как задумано
я вообще считаю что на уровне приложения юнит-тестирование плохо
на уровне библиотеки да, но тоже под вопросом
нужно тестировать бизнес-логику, а не реализацию, за некоторыми исключениями

Pavel
07.07.2016
09:51:30
У класса реализация это и есть бизнес логика
Если в библиотеке

yopp
07.07.2016
09:51:42
чо

Pavel
07.07.2016
09:52:19
Реализация методов класса - это и есть то чем пользуется бизнес-заказчик программист, который этот класс использует

yopp
07.07.2016
09:52:34

Pavel
07.07.2016
09:52:45
А под каким вопросом?

yopp
07.07.2016
09:53:06
например если у тебя драйвер в базу данных, я не особо вижу смысла тестировать например сериализатор
потому что если у тебя есть интеграционный тест который лупит в базу, ты и так узнаешь что у тебя что-то сломалось

ojab
07.07.2016
09:53:32
тесты это не самоцель
понятно что не самоцель, но TDD предполагает написание хороших тестов. Формальных критериев для определения качества тестов нет -> TDD is flawed
мне интересно, есть ли какие-то критерии у адепта[-ов] TDD в чяте

Google

yopp
07.07.2016
09:53:52
но это в идеальном мире
в реальном мире, у тебя где-то в одном месте что-то сломалось и всё красное
и откуда конкретно растут ноги ты поймёшь уже сильно позже

ojab
07.07.2016
09:55:01

yopp
07.07.2016
09:55:16
интеграционное правильно и нужно

Pavel
07.07.2016
09:55:27

yopp
07.07.2016
09:55:39

Антон
07.07.2016
09:56:02

Pavel
07.07.2016
09:56:21
Если ты тестируешь два класса одними тестами, то получаешь экспоненциальный рост количества комбинаций для теста.

ojab
07.07.2016
09:56:22

yopp
07.07.2016
09:56:49
интеграционное показывает где у тебя в реализации бизнес-логики проблема
я там выше скорее про tdd в контексте юнит-тестов говорил

Антон
07.07.2016
09:57:25

yopp
07.07.2016
09:57:35
но ваще это классическая проблема who will watch the who will watch the watchers

ojab
07.07.2016
09:57:37
мутационное тестирование
что "мутационное тестирование"? Мутационное тестирование — формальный критерий определения качества написанных тестов?

yopp
07.07.2016
09:57:49

Антон
07.07.2016
09:58:31

ojab
07.07.2016
09:58:37
ок

Google

Антон
07.07.2016
10:00:27
мутационное тестирование быстро объяснило мне что "твой код говно, а тесты ты вообще писать не умеешь"

ojab
07.07.2016
10:00:50
я хз как это приментять в случае интеграционных тестов
про комбинаторный взрыв уже писали, да

Антон
07.07.2016
10:02:11
ну тестируешь ты апишку реквестами
мутации скажу тебе какие кейсы не покрыты, к пример
а пока ты эти мутации будешь отлавливать, станет понятно где код надо рефакторить

Pavel
07.07.2016
10:03:09
Мутации - они же вероятностные. Т.е. они тебе найдут 99 багов, а сотый - самый критичный - не найдут.
Для написания совсем уж корректного академичного кода тесты не очень то подходят вообще.

Nikolay
07.07.2016
10:04:13
посоны, а присоветуйте мануал по респекам для чайников
для начала в переводе бы
а то чот как-то смотрю я на рспек, полтора теста написал
а панелька - приложение сложное, это вам не бложек на две модели... ладно, три

Admin
ERROR: S client not available

Антон
07.07.2016
10:09:39
100% гарантию никто никогда не даст
но это не повод сваливаться в трансцендентализм

Pavel
07.07.2016
10:10:56

Антон
07.07.2016
10:11:36

ojab
07.07.2016
10:11:49

Nikolay
07.07.2016
10:11:53
отетовы нагнали

Антон
07.07.2016
10:11:56

ojab
07.07.2016
10:12:02
хотя branch coverage'a под руби нет, да

Антон
07.07.2016
10:12:36
coverage учитывает, что в кейсе запущен код, только и всего

Google

Pavel
07.07.2016
10:12:58

Антон
07.07.2016
10:13:34

Pavel
07.07.2016
10:14:29
Потому что у тебя есть экспоненциальное количество состояний программы, а тесты проверяют единицы из них.

Антон
07.07.2016
10:15:10

Pavel
07.07.2016
10:16:01
Она как раз занимается тем что борется с перебором всех состояний всякими методами, не разрушая теоретическую гарантию правильности.
Таблицу состояний невозможно построить впринципе для хоть сколько-то сложных программ, никакой памяти не хватит.

Nikolay
07.07.2016
10:16:55
посоны, вы там вааще работаете или так, чисто пофилософствовать зашли?:):)

Антон
07.07.2016
10:16:59

ojab
07.07.2016
10:17:57
гм, а что вообще есть живое для mutation testing под руби?

Антон
07.07.2016
10:18:03
mutant

Pavel
07.07.2016
10:18:11

Nikolay
07.07.2016
10:18:17

ojab
07.07.2016
10:18:29
Bundler could not find compatible versions for gem "rspec-core":
In snapshot (Gemfile.lock):
rspec-core (= 3.5.0)
In Gemfile:
mutant-rspec was resolved to 0.5.0, which depends on
rspec-core (~> 2.14.1)
какое-то оно не очень живое
по крайней мере для rspec'a

Andrey
07.07.2016
10:18:50
> @TurnaviotovNikolay
респекам
https://relishapp.com/rspec/rspec-expectations/v/3-4/docs/built-in-matchers
https://semaphoreci.com/community/tutorials/getting-started-with-rspec

Антон
07.07.2016
10:18:50

Nikolay
07.07.2016
10:19:20

Антон
07.07.2016
10:19:35
релоадишь консоль пол дня?
или браузер