y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

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

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

IIIJI9IIa

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

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

Сообщения: 5198

Рейтинг: 3490

IIIJI9IIa

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

Сообщения: 5198

Рейтинг: 3490

y6ejushe сказал(а):

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

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

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

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

YoshkinKot

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

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

Сообщения: 19110

Рейтинг: 7545

YoshkinKot

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

Сообщения: 19110

Рейтинг: 7545

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

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

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


ха-ха


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

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


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


YoshkinKot сказал(а):

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

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

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


ха-ха


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

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

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

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

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


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


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

vVACB4N.png

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



morecore

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

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

Сообщения: 1387

Рейтинг: 381

morecore

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

Сообщения: 1387

Рейтинг: 381

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

Закись Ашота

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

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

Сообщения: 15929

Рейтинг: 8947

Закись Ашота

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

Сообщения: 15929

Рейтинг: 8947

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

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

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

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

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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

morecore сказал(а):

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

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

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


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

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

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

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

morecore

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

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

Сообщения: 1387

Рейтинг: 381

morecore

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

Сообщения: 1387

Рейтинг: 381

y6ejushe сказал(а):

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


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

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

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

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

Закись Ашота

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

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

Сообщения: 15929

Рейтинг: 8947

Закись Ашота

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

Сообщения: 15929

Рейтинг: 8947

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

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

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

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

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

Подонок05

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

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

Сообщения: 204

Рейтинг: 108

Нарушения: 1000

Подонок05

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

Сообщения: 204

Рейтинг: 108

Нарушения: 1000

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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

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

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

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

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

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


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

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

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

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

QlyouQwa

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

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

Сообщения: 616

Рейтинг: 617

QlyouQwa

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

Сообщения: 616

Рейтинг: 617

y6ejushe сказал(а):

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

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

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


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


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


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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

QlyouQwa сказал(а):

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


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


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


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

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

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

QlyouQwa

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

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

Сообщения: 616

Рейтинг: 617

QlyouQwa

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

Сообщения: 616

Рейтинг: 617

y6ejushe сказал(а):

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

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

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


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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

QlyouQwa сказал(а):

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


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

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

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

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

QlyouQwa

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

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

Сообщения: 616

Рейтинг: 617

QlyouQwa

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

Сообщения: 616

Рейтинг: 617

y6ejushe сказал(а):

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

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

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

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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

QlyouQwa сказал(а):

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

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

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


QlyouQwa сказал(а):

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


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


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


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

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

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

kiesel

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

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

kiesel

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

y6ejushe сказал(а):

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

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

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

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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

YoshkinKot сказал(а):

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

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

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


ха-ха


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

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


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


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

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

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


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


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

vVACB4N.png

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



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

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


kiesel сказал(а):

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

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

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

kiesel

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

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

kiesel

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

YoshkinKot сказал(а):

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

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

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

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


y6ejushe сказал(а):

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


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

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

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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

kiesel сказал(а):

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


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

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

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

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

kiesel

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

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

kiesel

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

y6ejushe сказал(а):

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

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

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

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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

kiesel сказал(а):

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

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

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

QlyouQwa

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

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

Сообщения: 616

Рейтинг: 617

QlyouQwa

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

Сообщения: 616

Рейтинг: 617

y6ejushe сказал(а):

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

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

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

kiesel

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

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

kiesel

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

Сообщения: 2899

Рейтинг: 1053

Нарушения: 1000

y6ejushe сказал(а):

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

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

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

y6ejushe

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

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

Сообщения: 14242

Рейтинг: 2109

y6ejushe

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

Сообщения: 14242

Рейтинг: 2109

QlyouQwa сказал(а):

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

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

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

kiesel сказал(а):

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

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

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

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


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