y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

Не понял, как я напишу тест, если у меня нет кода который тестировать. Мне же для того, чтобы написать тест нужно использовать сущности и методы которые я хочу протестировать.

Может кто объяснить, я ничего не понял.

IIIJI9IIa

Пользователь

Регистрация: 04.07.2020

Сообщения: 2972

Рейтинг: 2262

IIIJI9IIa

Регистрация: 04.07.2020

Сообщения: 2972

Рейтинг: 2262

y6ejushe сказал(а):

Не понял, как я напишу тест, если у меня нет кода который тестировать. Мне же для того, чтобы написать тест нужно использовать сущности и методы которые я хочу протестировать.

Может кто объяснить, я ничего не понял.

Нажмите, чтобы раскрыть...

Тест кто ты из ранеток?ZeroTwoThinking.png?1621090694

YoshkinKot

Пользователь

Регистрация: 20.06.2016

Сообщения: 15235

Рейтинг: 5988

YoshkinKot

Регистрация: 20.06.2016

Сообщения: 15235

Рейтинг: 5988

см late binding (позднее связывание)

фундаментальная концепция в информатике

благодаря которой можно писать код который вызывает код которого еще нет

 

ха-ха

 

а потом его еще можно подменять по-ходу и не перекомпилировать

и так пока не пофиксишь баги

 

(на самом деле не обязательно, но не важно)

 

YoshkinKot сказал(а):

см late binding (позднее связывание)

фундаментальная концепция в информатике

благодаря которой можно писать код который вызывает код которого еще нет

 

ха-ха

 

(на самом деле не обязательно, но не важно)

Нажмите, чтобы раскрыть...

спойлер номер 2:

в PHP позднее связывание всегда

и даже типы проверяются в рантайме

 

ну потому что почти всё в рантайме делается

 

там буквально можно функцию через строку дёрнуть (которой вполне может не быть)

vVACB4N.png

так что последний комментарий иррелевантен тебе

 

 

morecore

Пользователь

Регистрация: 19.07.2013

Сообщения: 1169

Рейтинг: 331

morecore

Регистрация: 19.07.2013

Сообщения: 1169

Рейтинг: 331

пишется интерфейс и обкладывается моками

Закись Ашота

Пользователь

Регистрация: 10.05.2013

Сообщения: 13716

Рейтинг: 7814

Закись Ашота

Регистрация: 10.05.2013

Сообщения: 13716

Рейтинг: 7814

img
y6ejushe сказал(а):

Не понял, как я напишу тест, если у меня нет кода который тестировать. Мне же для того, чтобы написать тест нужно использовать сущности и методы которые я хочу протестировать.

Может кто объяснить, я ничего не понял.

Нажмите, чтобы раскрыть...

Для этого достаточно знать какой результат должен этот код выдавать, сам код при этом не нужен.

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

morecore сказал(а):

пишется интерфейс и обкладывается моками

Нажмите, чтобы раскрыть...

Пхахахахах, весь тест в моках, а что тестировать будем? Мок?))

Закись Ашота сказал(а):

Для этого достаточно знать какой результат должен этот код выдавать, сам код при этом не нужен.

Нажмите, чтобы раскрыть...

Так мы же код тестируем

morecore

Пользователь

Регистрация: 19.07.2013

Сообщения: 1169

Рейтинг: 331

morecore

Регистрация: 19.07.2013

Сообщения: 1169

Рейтинг: 331

y6ejushe сказал(а):

Пхахахахах, весь тест в моках, а что тестировать будем? Мок?))

 

Так мы же код тестируем

Нажмите, чтобы раскрыть...

Можно и без моков а на заглушках

В тдд тест это спецификация 

Закись Ашота

Пользователь

Регистрация: 10.05.2013

Сообщения: 13716

Рейтинг: 7814

Закись Ашота

Регистрация: 10.05.2013

Сообщения: 13716

Рейтинг: 7814

img
y6ejushe сказал(а):

Так мы же код тестируем

Нажмите, чтобы раскрыть...

У тебя был вопрос, как это без кода делать, я же ответил на него.

Да мы тестируем код, дальше то что?

Подонок05

Пользователь

Регистрация: 15.06.2024

Сообщения: 225

Рейтинг: 110

Нарушения: 100

Подонок05

Регистрация: 15.06.2024

Сообщения: 225

Рейтинг: 110

Нарушения: 100

Как какать? Как писать код? Как как как notlikemia.png?1621090946

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

Закись Ашота сказал(а):

У тебя был вопрос, как это без кода делать, я же ответил на него.

Да мы тестируем код, дальше то что?

Нажмите, чтобы раскрыть...

Как я тебе напишу тест без кода который нужно тестировать. Ответь?!

Подонок05 сказал(а):

Как какать? Как писать код? Как как как notlikemia.png?1621090946

Нажмите, чтобы раскрыть...

Писать ты научился, а толку, не отличишь письмо от говна.

QlyouQwa

Пользователь

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

QlyouQwa

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

y6ejushe сказал(а):

Как я тебе напишу тест без кода который нужно тестировать. Ответь?!

Нажмите, чтобы раскрыть...

пишешь тест так, как будто бы у тебя уже есть код

 

потом как тест написан - пишешь уже реализацию

 

другое дело что TDD обычное дерьмо из жопы

 

нужно чтоб снизить кол-во потраченного времени на тестирование, тк написание теста в данной парадигме как часть дизайна, но на деле вместо обычного "написал код" -> "написал тест" у тебя получается "написал тест" -> "написал код" -> "исправляешь тест"

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

QlyouQwa сказал(а):

пишешь тест так, как будто бы у тебя уже есть код

 

потом как тест написан - пишешь уже реализацию

 

другое дело что TDD обычное дерьмо из жопы

 

нужно чтоб снизить кол-во потраченного времени на тестирование, тк написание теста в данной парадигме как часть дизайна, но на деле вместо обычного "написал код" -> "написал тест" у тебя получается "написал тест" -> "написал код" -> "исправляешь тест"

Нажмите, чтобы раскрыть...

Так как я напишу тест если нет кода, я не понимаю! 

QlyouQwa

Пользователь

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

QlyouQwa

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

y6ejushe сказал(а):

Так как я напишу тест если нет кода, я не понимаю! 

Нажмите, чтобы раскрыть...

у тебя есть функция a() которая пустая щас

 

ты пишешь тест, что ожидается что функция a() вернет строку "random", ну и пишешь тест на сравнение, этот тест будет падать, и чтоб он прошел ты начинаешь уже после теста описывать тело функции a(), чтобы она в итоге начала отдавать строку "random", в конце у тебя работающая функция с уже написанным тестом

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

QlyouQwa сказал(а):

у тебя есть функция a() которая пустая щас

 

ты пишешь тест, что ожидается что функция a() вернет строку "random", ну и пишешь тест на сравнение, этот тест будет падать, и чтоб он прошел ты начинаешь уже после теста описывать тело функции a(), чтобы она в итоге начала отдавать строку "random", в конце у тебя работающая функция с уже написанным тестом

Нажмите, чтобы раскрыть...

Но я читал википедию про тдд и там написано, что тдд начинается с теста, а не с функции a().

И чтобы сделать функцию a(), должна уже быть архитектура пустая?

QlyouQwa

Пользователь

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

QlyouQwa

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

y6ejushe сказал(а):

Но я читал википедию про тдд и там написано, что тдд начинается с теста, а не с функции a().

И чтобы сделать функцию a(), должна уже быть архитектура пустая?

Нажмите, чтобы раскрыть...

так смысл в том, что у тебя уже придумана фантомная функция a() , которую нужно тестить, но начинаешь ты с теста, а не с этой функции

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

QlyouQwa сказал(а):

так смысл в том, что у тебя уже придумана фантомная функция a() , которую нужно тестить, но начинаешь ты с теста, а не с этой функции

Нажмите, чтобы раскрыть...

Что такое фантомная функция? Ее тип нет, да, я просто название пишу? Ну по идее можно. 

QlyouQwa сказал(а):

пишешь тест так, как будто бы у тебя уже есть код

 

потом как тест написан - пишешь уже реализацию

 

другое дело что TDD обычное дерьмо из жопы

 

нужно чтоб снизить кол-во потраченного времени на тестирование, тк написание теста в данной парадигме как часть дизайна, но на деле вместо обычного "написал код" -> "написал тест" у тебя получается "написал тест" -> "написал код" -> "исправляешь тест"

Нажмите, чтобы раскрыть...

Просто если я если буду писать тест как будто код уже есть, то тест не то что не пройдет, он закончится ошибкой.

kiesel

Пользователь

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

kiesel

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

y6ejushe сказал(а):

Не понял, как я напишу тест, если у меня нет кода который тестировать. Мне же для того, чтобы написать тест нужно использовать сущности и методы которые я хочу протестировать.

Может кто объяснить, я ничего не понял.

Нажмите, чтобы раскрыть...

Ты пишешь тест, а потом код, что непонятного, ты тупой?ShrekThinking.png?1619501239

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

YoshkinKot сказал(а):

см late binding (позднее связывание)

фундаментальная концепция в информатике

благодаря которой можно писать код который вызывает код которого еще нет

 

ха-ха

 

а потом его еще можно подменять по-ходу и не перекомпилировать

и так пока не пофиксишь баги

 

(на самом деле не обязательно, но не важно)

 

спойлер номер 2:

в PHP позднее связывание всегда

и даже типы проверяются в рантайме

 

ну потому что почти всё в рантайме делается

 

там буквально можно функцию через строку дёрнуть (которой вполне может не быть)

vVACB4N.png

так что последний комментарий иррелевантен тебе

 

 

Нажмите, чтобы раскрыть...

НАпиши пример тдд

kiesel сказал(а):

Ты пишешь тест, а потом код, что непонятного, ты тупой?ShrekThinking.png?1619501239

Нажмите, чтобы раскрыть...

Как я могу написать тест без кода?

kiesel

Пользователь

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

kiesel

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

YoshkinKot сказал(а):

в PHP позднее связывание всегда

и даже типы проверяются в рантайм

Нажмите, чтобы раскрыть...

Не всегда, есть self vs static

y6ejushe сказал(а):

НАпиши пример тдд

 

Как я могу написать тест без кода?

Нажмите, чтобы раскрыть...

В том то и дело, что ты пишешь в тесте то, что ОЖИДАЕШЬ от кода, а потом пишешь код который СМОЖЕТ пройти тест

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

kiesel сказал(а):

Не всегда, есть self vs static

 

В том то и дело, что ты пишешь в тесте то, что ОЖИДАЕШЬ от кода, а потом пишешь код который СМОЖЕТ пройти тест

Нажмите, чтобы раскрыть...

Я ничего не понял, как я напишу тест что я ожидаю от кода. Ты писал хоть раз тесты или нет?

Чтобы мне написать, что я ожидаю от кода, мне нужен этот код. Как тогда тест поймут от чего именно я ожидаю.

kiesel

Пользователь

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

kiesel

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

y6ejushe сказал(а):

Я ничего не понял, как я напишу тест что я ожидаю от кода. Ты писал хоть раз тесты или нет?

Чтобы мне написать, что я ожидаю от кода, мне нужен этот код. Как тогда тест поймут от чего именно я ожидаю.

Нажмите, чтобы раскрыть...

У тебя мозг деревянный. Я ожидаю у класса вызов такого метода столько то раз с такими то параметрами и пишу сначало это в тесте, а КОДА ТО НЕТ ЕЩЕ, МАГИЯ. А потом я уже пишу реализацию которая пройдет тест

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

kiesel сказал(а):

У тебя мозг деревянный. Я ожидаю у класса вызов такого метода столько то раз с такими то параметрами и пишу сначало это в тесте, а КОДА ТО НЕТ ЕЩЕ, МАГИЯ. А потом я уже пишу реализацию которая пройдет тест

Нажмите, чтобы раскрыть...

Так этот тест не запустится даже

QlyouQwa

Пользователь

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

QlyouQwa

Регистрация: 19.08.2015

Сообщения: 388

Рейтинг: 304

y6ejushe сказал(а):

то тест не то что не пройдет, он закончится ошибкой.

Нажмите, чтобы раскрыть...

поздравляю, теперь ты знаешь что такое TDD, в этом и смысл, он падает, но тест есть и теперь тебе нужно написать функцию a() так, чтобы тест прошел

kiesel

Пользователь

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

kiesel

Регистрация: 19.10.2023

Сообщения: 2229

Рейтинг: 768

Нарушения: 50

y6ejushe сказал(а):

Так этот тест не запустится даже

Нажмите, чтобы раскрыть...

Запустится, будет феил теста просто, но ты вначале можешь только класс пустой создать который будешь тестить и потом писать тест, какое поведение от него ожидаешь етц

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

y6ejushe

Регистрация: 24.10.2021

Сообщения: 13933

Рейтинг: 2134

Нарушения: 5

QlyouQwa сказал(а):

поздравляю, теперь ты знаешь что такое TDD, в этом и смысл, он падает, но тест есть и теперь тебе нужно написать функцию a() так, чтобы тест прошел

Нажмите, чтобы раскрыть...

Тест даже не закончится. В статье пишут что тест должен закончиться красным. Так что ты не прав.

kiesel сказал(а):

Запустится, будет феил теста просто, но ты вначале можешь только класс пустой создать который будешь тестить и потом писать тест, какое поведение от него ожидаешь етц

Нажмите, чтобы раскрыть...

Прочитай что такое ТДД, если сам не знаешь, зачем пытаешься умничать?

В статьях сказано, что тдд начинается с теста.

И что ни кто не объяснит?