yiisoft/security
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
yiisoft/security
Выделил вчера пакет https://github.com/yiisoft/security, который включил в себя то, что раньше было в классе Security. Разбил на несколько классов, чуть причесал API.
Как вам?
Если есть время, можете помочь довести тесты до 100% или покритиковав публичный API.
Как вам?
Если есть время, можете помочь довести тесты до 100% или покритиковав публичный API.
Нравится Yii? Давайте сделаем его лучше!.
Re: yiisoft/security
А что так много final классов? Как мокать? Гору интерфейсов будете выделять?
Re: yiisoft/security
Для тестов, если в моих классах имеются зависимости от классов пакета security
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: yiisoft/security
Да, там явно запрещается наследование чтобы не было своих самых лучших алгоритмов шифрования и вот этого всего.
Вот только я не понимаю профита от моканья этого в тестах. В чём профит? Что мешает оттестировать без мока?
Вот только я не понимаю профита от моканья этого в тестах. В чём профит? Что мешает оттестировать без мока?
Нравится Yii? Давайте сделаем его лучше!.
Re: yiisoft/security
Юниты должны быть изолированы от всего что инжектится вроде как) Алгоритмы шифрования не все супер-быстрые, есть и медленные. В библиотеках final я бы вообще не делал, мало ли кому что расширить/изменить понадобится.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: yiisoft/security
"Вроде как"? Вы сами пишете что юниты должны быть изолированы, а не классы. Что для теста юнит определяет тот, кто этот тест пишет.Юниты должны быть изолированы от всего что инжектится вроде как)
Например, определение юнита из https://www.manning.com/books/the-art-o ... nd-edition:
Изолировать всё подряд — это слепое применение паттерна. Стоит понимать, какая именно проблема этой изоляцией решается.A unit test is an automated piece of code that invokes the unit of work being tested, and then checks some assumptions about a single end result of that unit. A unit test is almost always written using a unit testing framework. It can be written easily and runs quickly. It’s trustworthy, readable, and maintainable. It’s consistent in its results as long as production code hasn’t changed.
...
A unit of work is the sum of actions that take place between the invocation of a public method in the system and a single noticeable end result by a test of that system.
Обычно либо это скорость работы теста, либо нестабильность (как следствие зависимости от внешнего сервиса с нестабильным протоколом вроде HTTP), либо сложность.
Нестабильность библиотека security не привносит, отрабатывает ожидаемо. Сложности никакой нет, методы очень простые, не сложнее чем стандартная библиотека. Производительность да, нормальная причина, но об этом ниже.
Cost понизьте, будет быстро.Алгоритмы шифрования не все супер-быстрые, есть и медленные
Не должно понадобиться. Если понадобилось, тут или наш фейл и мы это поправим в новом релизе или кому-то очень хочется стрельнуть себе в ногу.мало ли кому что расширить/изменить понадобится
Нравится Yii? Давайте сделаем его лучше!.