Небольшой холивар TDD /specBDD

fixxxer

К.О.
Партнер клуба
Ну вот. Обычно, если сказать, что говно, начинают доказывать и объяснять. А ты слился :(

:D
 

Ragazzo

TDD interested
fixxxer
дак я 4 страницы доказывал, а в ответ только "не понимаю кому нужно, у нас менеджеры/кодеры/etc не такие" :) ты как влиятельный программист можешь же в баду или еще у кого-то спросить кто использует BDD чтобы объяснили)) я сам в нем не мегапро :) просто вижу что вся дискуссия сваливается в шлак.
 

AmdY

Пью пиво
Команда форума
Ragazzo
мы действительно пытаемся разобраться, у меня критический-пессиместический подход, сразу пытаюсь найти минусы и грабли. затем плюсы, затем применяю, затем ещё раз взвешиваю плюсы минусы. в bdd очень туго с терминологией и нет однозначности из-за чего трудно воспринимается. я вижу его как усечённый до человекопонятного синтаксиса тестирование по принципу given, when, then. мне как программисту это всё гораздо приятнее делать на полноценном синтаксисе phpunit, а не увеличивать энтропию за счёт сахара бихата и тд.

TDD тоже ведь не хотели признавать насколько я помню.
я и до сих пор не пишу тесты в начале и считаю идею сомнительной. в начале дискусии приводил ссылку на автора рельс. который высказывается примерно в том же ключе, хотя именно там tdd и bdd возводится в разряд религии.
 

Ragazzo

TDD interested
AmdY
в том то и дело что ты не пишешь тесты сначала, ты сначала обдумываешь поведение компонентов системы, и только потом посредством анализа их поведения и т п углубляешься в тесты (tdd). Т.е. так: BDD->TDD(specBDD если кто вдруг заменяет). Многие же говорили что если вы пишете тесты исходя из поведения даже те же unit, то вы уже делаете bdd, только не теми средствами :D Терминология нормальная, но материала мало да.
 
  • Like
Реакции: AmdY

fixxxer

К.О.
Партнер клуба
О! Уже ближе. Я как раз и пытаюсь понять что это может привнести в саму методологию разработки. Кажется, начинает доходить, суть в иерархии.

(Хотя, есть скажем случаи, когда я пишу тест сначала, есть, когда потом, не надо абсолютов :))
 

Ragazzo

TDD interested
fixxxer
Простой пример, вот тебе дали задачу: разработай ка машину которая ездит, и при этом могут быть различные типы моделей и т п. Ты бросишься сразу писать классы? или тебе проще из анализа поведения и проработки предметной области построить все взаимосвязи объектов? Т.е. тебе проще сделать так:
I have a car
Then i fill tank with gasoline
When i turn keys
Then engine starts
и так:
i have a car
I see tank is empty
I try to start engine
I see engine can not be started

и уже исходя из этого дальше углубляться в TDD (specBDD).
Пример возможно плох, т.к. я не особо разбираюсь в машинах, а дан лишь для того чтобы понять абстракцию.
или писать сразу CarTest?
 

fixxxer

К.О.
Партнер клуба
Так, смотри, я как понял. В pre-BDD терминологии буду изъясняться. У нас есть некий кейс, для него (берем идеализированный процесс):
1) пишется в первую очередь код функционального теста, как оно должно себя вести, если ну вот прямо так написать в контроллере/сервисе
2) пишутся недостающие юнит-тесты и реализации
и этот процесс итеративно пока не будет условно везде зелеленькое

так чтоли?
 

Ragazzo

TDD interested
fixxxer
Почти. Т.е. тот же behat+mink так и действует грубо говоря, когда тебе нужно например затестить или разработать какой-либо контроллер. Там тоже есть I see, I fill и т п. Суть в том чтобы при проектировании именно исходить из того как ведет себя объект (это если говорит чисто про BDD, хотя я еще раз повторюсь не эксперт). А если про тестирование контроллеров как то тут особо объектов нет, кроме страницы если ее считать. Я специально не хотел на контроллерах расматривать т.к. в них не очевидно как ты будешь из теста контроллера строить модели :S поэтому именно такой пример и привел. Почитай больше доков у behat и статьи на хабре, правда там некоторый про старый behat.
 

fixxxer

К.О.
Партнер клуба
Не, я имею в виду не тестировать контроллеры. А что тест будет в некотором смысле напоминать код контроллера в плане последовательности действий.

Я просто сам принцип хочу понять, без вот всей этой мишуры с формой записи, она отвлекает от сути
 

Ragazzo

TDD interested
fixxxer
будет напоминать, т.к. ты и пишешь исходя из того что ты хочешь (что твой контроллер будет делать). А формат записи лишь для удобного чтения, кстати можно и на русском :) в behat есть разные языки.
 

AmdY

Пью пиво
Команда форума
Ragazzo
всё, дошло. я сахар воспринимал как суть BDD
теперь разообраться бы со стори и спек бдд.
 

AmdY

Пью пиво
Команда форума
Мы сейчас тесты на angularjs пробуем писать, чувствую скоро буду кабан не только в BDD, но и ещё каком-то непонятном термине.
 

Ragazzo

TDD interested
AmdY
я хз есть ли для js BDD средства, наверное есть конечно) TDD же есть.
 

craz

Нестандартное звание
конец к концу?)))))))))) тест на гетеросексуальность?)
 
  • Like
Реакции: AmdY
Сверху