169 похожих чатов

Если написать метод как приватный __foo, то я его не

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

Ну что делают в таких случах? Тестировать внутри самого класса? Или хакать вызывание этого метода (так как он псевдоприватный, а не приватный).

P.S.: сейчас подумал, наверное это плохой дизайн. Если метод рили приватный, то смысл его юнит тестировать?

5 ответов

11 просмотров

Смысл тестить есть, ошибке все равно появляться в приватном методе или нет

Artem-Hevorhian Автор вопроса
Kyrylo
Смысл тестить есть, ошибке все равно появляться в ...

Не хочется выносить то, что пользователю не нужно. Тогда через `__dict__` достучаться можно, вроде как

Artem Hevorhian
Не хочется выносить то, что пользователю не нужно....

Куда выносить? Если твоя программа использует этот метод, то он должен быть покрыт тестами (если ты хочешь тестить). Если не использует, тогда удали его. В пайтоне нет приватности, и ничего спрятать не получится, если по дизайну твой приватный метод используется в публичном, то пользователь так и будет использовать публичный, независимо от того тестил ли ты приватный. А если он захочет то и в приватный залезет

Artem-Hevorhian Автор вопроса
Kyrylo
Куда выносить? Если твоя программа использует этот...

Понятно, просто в тесте вызову его несмотря на то, что приватный (.__method_name()).

Artem Hevorhian
Понятно, просто в тесте вызову его несмотря на то,...

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

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта