
rabbitkate
29.08.2018
16:53:03
очевидно, раз поставили задачу научиться работать с методами разного уровня доступа, это не просто так :)

Fedor
29.08.2018
16:53:22
ну тогда вызывайте через send
и сразу говорите, что если увидете такое в коде, то найдете исполнителя и сломаете ему руку
главное, смотрите при этом прямо в глаза интервьюеру что бы поверил

Google

rabbitkate
29.08.2018
16:54:16
у меня не тот уровень компетентности, чтоб калечить людей из-за автотестов)

Alex
29.08.2018
16:59:00
для приватного метода? что?

Vasiliy
29.08.2018
17:02:29
Вообще за тесты приватных методов и их вызовы вне классов надо ссать на клаву

Alex
29.08.2018
17:03:05

Fedor
29.08.2018
17:04:13
а что делать, если они исполняются 40 минут?

Nikolay
29.08.2018
17:04:31
test-prof
и вперёд

Alex
29.08.2018
17:04:34

Fedor
29.08.2018
17:04:42
не, это то понятно
с клавой что делать положено в этом случае?

Alex
29.08.2018
17:04:56
ссать

Fedor
29.08.2018
17:05:21
это неправильно

Alex
29.08.2018
17:05:30

Google

Fedor
29.08.2018
17:05:43
зайдет техлид в комнату, увидит процесс, и не сможет понять, в чем причина
на разные проблемы надо производить разные действия

Alexander
29.08.2018
17:07:14
?
и кстати чем плохо тестирование приватных методов? если у класса только один публичный метод и 10 приватных. то проще узнать какой из этих 10 сломался, если их тестить отдельно

Fedor
29.08.2018
17:09:52
да, но при этом буличный тоже надо протестить, и в итоге приватные ты протестишь дважды
а это удвоение времени выполнения каждый вызов рспека
какое-то время ничего страшного, а потом, тесты уже в 10 потоков выполняются полдня

Dima
29.08.2018
17:10:24

Fedor
29.08.2018
17:10:56
ИМХО тесты немного вне теории программирования

Alexander
29.08.2018
17:11:21
приватные проще тестить на эдж кейсы. иначе будет сложно отловить все ситауции если будешь тестить только публичный. ну или же написать на публичный 10*х тестов, чтобы покрыть все приватные

Fedor
29.08.2018
17:11:24
в идеальном мире я бы покрывал тестами все вдоль и поперек, наплевав и на инкапсуляцию и на DRY и на все вообще
ну или тестить приватные, а при тесте публичного все их застабить )

Dima
29.08.2018
17:11:57
про это Sandi Metz целую книжку написала. Там все очень прозрачно и читаемо.

Vasiliy
29.08.2018
17:12:45
Ну так тесть публичный и смотри покрытие
Лучше уж 10х тестов публичного написать чем приватные тестить
Зачем их тестировать вне контекста их вызова?

Darth
29.08.2018
17:31:10
Потому что не факт, что ты покроешь все кейсы приватного
Я считаю, что лучше когда тестами покрыто всё, что имеет смысл тестировать

rabbitkate
29.08.2018
17:35:13
такой вопрос:
есть параметр, у которого attr_writer публичный, а attr_reader protected. этот параметр участвует в другом наследуемом классе в вычислениях (суммируется с другим параметром). при запуске появляется ошибка +': nil can't be coerced into Integer (TypeError)
это связано с тем, что attr_reader protected? как исправить?

Tim
29.08.2018
17:36:17

Google

Tim
29.08.2018
17:36:42
Тестировать приватные методы если и надо, то в исключительных случаях

Darth
29.08.2018
17:37:47

Tim
29.08.2018
17:38:03
Смотря что он делает
Ну я просто по этому поводу не пришел к однозначному мнению, но имхо приватные методы надо тестировать в качестве исключения, если тестировать вовсе

Darth
29.08.2018
17:39:56

Tim
29.08.2018
17:41:18
Хотя не, надо избегать тестирования приватных методов вообще. Смотреть на стейт полей класса - куда ни шло, но тоже не оч кошерно

Darth
29.08.2018
17:41:21
А что касается "не тестировать реализацию", то это не только к приватным относится
Бывает что и публичный нет смысла тестировать отдельно

Dima
29.08.2018
17:41:25
Practical Object Oriented Design in Ruby, An Agilie Primer (c) Sendi Metz

Tim
29.08.2018
17:41:39

Darth
29.08.2018
17:41:53

Darth
29.08.2018
17:42:05
Тут все умные гуру лучших практик

Dima
29.08.2018
17:42:13

Darth
29.08.2018
17:42:19
А кодим мы на реальных проектах, которые кто-то делал до нас

Tim
29.08.2018
17:42:30

Darth
29.08.2018
17:42:44
S.O.L.I.D
В рельсах солид польностью не соблюдается
Это опять же о комментаторах и их лучшим практиках, которые часто только в комментариях и существуют

Tim
29.08.2018
17:43:20

Dima
29.08.2018
17:43:26

Google

Tim
29.08.2018
17:43:31
Это не говорит о неверности моего суждения

Darth
29.08.2018
17:43:51

Dima
29.08.2018
17:44:21
Тебе к Каролине )
Дружище, не надо залупаться. И искать ссоры. Залупился на Тима, теперь на меня. Прекращай. Веди себя уважительно.

Darth
29.08.2018
17:44:43
Обиженный? ?

Admin
ERROR: S client not available

Tim
29.08.2018
17:45:03

Dima
29.08.2018
17:45:49

Tim
29.08.2018
17:46:10
Ахаха

Alex
29.08.2018
17:49:27

Dima
29.08.2018
17:50:20

Alex
29.08.2018
17:50:35
не точно.
короч у тебя будут километровые тесты

Dima
29.08.2018
17:50:35
но я точно знаю что такое OOD

Alex
29.08.2018
17:50:38
при black box

Dima
29.08.2018
17:50:44

Alex
29.08.2018
17:50:54

Dima
29.08.2018
17:51:09

Alex
29.08.2018
17:51:17

Dima
29.08.2018
17:51:23

Alex
29.08.2018
17:51:38
потому что когда ты тестируешь black box чуть более чем простую логику - тебе придется кучу данных запилить чтобы протестировать внутренний приватный метод
контроллеры тестил когданить?

Google

Alex
29.08.2018
17:52:10
вот у тебя и будут километровые тесты на 4 страницы лишь бы не "ломать инкапсуляцию"

Dima
29.08.2018
17:53:35
могу скинуть для ознакомления.
в 4 раз.

Alex
29.08.2018
17:53:50
код с прода я тебе кидать конечно же не буду

Tim
29.08.2018
17:57:04

Alex
29.08.2018
17:58:07

Tim
29.08.2018
17:58:35
Ну тогда контроллеры больше подходят ко второй категории?

Alex
29.08.2018
17:58:43
а так и есть

Tim
29.08.2018
17:58:44
Типа тестишь апи своё
Условно

Alex
29.08.2018
17:58:52
в общем то так и есть

Tim
29.08.2018
17:59:00
Ну так это не юнит тесты, че тролешь

Alex
29.08.2018
17:59:13
всмысле