Michael
тестят то, чем будут пользоваться
Илья
странно это, я тестирую то, что хочу протестировать, оно может быть публичным или нет, если есть публичный враппер, который json ами плюётся, а есть внутренняя функция, который struct для json а готовит, я тестирую ее, а не внешний враппер, тк это удобнее.
Daniel
личный опыт как критерий истинности
Daniel
даже не опыт в данном случае, а мнение
Daniel
но есть еще методология
Daniel
и методология говорит нам - тестить надо внешний интерфейс
Илья
что за методология, где тестируют только публичный интерфейс?
Michael
здравый смысл
Aleksandr
Ты тестируешь работоспособность либы, а либа - это ее внешнее апи. Ты можешь тестировать внутренние функции, для себя - для консьюмеров твоего кода оно не нужно
Michael 🌌
Это ж два разных вида тестирований - ты говоришь про интеграционное
Daniel
не-не-не
Daniel
это все те же юнит-тесты
Michael 🌌
А юнит-тесты вполне можно к внутренней части программы применять, не?
Aleksandr
Но тестируя внутренние функции ты тратишь время - реализация может меняться
Илья
так здравый смысл или методология, или "стандарт индустрии"?
Daniel
методология
Andrei 🦉
методология
а какое название у этой методологии?)
Daniel
TDD
Daniel
по чистому TDD разрабатывать приходится редко, но unit-тесты - это оттуда
Илья
тдд - о том, что начинаешь с написание теста
Daniel
да
Илья
где там про публичность?
Daniel
а тест пишешь в соответствии с ТЗ
Michael
https://en.wikipedia.org/wiki/Black-box_testing
Daniel
в ТЗ нет ничего про детали реализации - соответственно, и тест на них написать невозможно
Daniel
аминь
Илья
бюлк бокс - уже ближе к делу, и это одна из методик, там не про юниты, а про интеграционные тесты
Michael
Илья
т.е. тут есть несколько адептов блэк бокс тестирования, и это выдается за единственную верну религию?
Michael
значит не внимательно или зэ нью трололо, диалектика йопта
Michael
Daniel
коллеги
Илья
Eugeny
всем привет!
один из парметров вызова функции это структура с URL и AcceessTocken, собственно вопрос, а потестировать такую функцию - сейчас она валится из-за неверного AT
Daniel
а как ты ее потестируешь без сервера
Илья
Eugeny
Илья
есть какие-то особенности текущей реализации, о которых внешний контракт не знает, и знать не должен, их тоже, иногда, стоит протестировать
Daniel
зачем?
Daniel
если они на контракт не влияют - их м писать-то не надо, не то, что тестировать
Илья
++
Daniel
нет спеки - нет тестов
Daniel
вы как дети, ей-богу
Vladislav
Цель тестов не только в том чтобы установить корректность а также в том чтобы понять какой кусок кода некорректен.
Michael
может просто нечем заняться и let's go writing godlike functions)
Daniel
что вы тестировать-то собираетесь без спеки?
"неужели я молодец?!" - "да, я молодец!"
Michael
Michael 🌌
Тесты могут писаться ещё и с расчётом на будущее, чтобы новый разраб не сломал что-то важное
Michael
Daniel
дорогая редакция, я худею
Илья
это я все к чему, вкусовщина это, тестировать внешний интерфейс - стоит обязательно, но это не мешает писать тесты для внутреннеей реализации, не мешает писать тесты на вспомогательные функции. И делать тесты локальнее и проще.
Daniel
давайте тогда с начала начнем
Daniel
зачем вы пишете тесты, тратите на них время и деньги?
Vladislav
Daniel
а?!
Daniel
а как тесты помогают находить ошибки?
Илья
ТДД же, пишешь тест, пишешь реализацию
Daniel
а откуда берется эталон, с которым сверять?
Vladislav
От того чего я хочу от этого кода.
Daniel
а в сам код вы их отчего не заложили?
Илья
напоминаю про ТДД
Aleksandr
не прав, почитал
This method of test can be applied virtually to every level of software testing: unit, integration, system and acceptance
Vladislav
Michael
всё интереснее...
Илья
Daniel
то есть - у вас есть нетривиальный код (тривиальный тестирования не требует), и есть представления о том, как он должен работать, недокументированные, и вы на их основании написали тесты, и веруете, что это поможет в поиске ошибок?
я ничего не упустил?
Vladislav
Daniel
на основании спеки
Pawel
Daniel
нельзя считать тесты документацией