Существуют несколько противоречивые утверждения о возможностях ScalaMock имитировать (сопутствующие) объекты и конструкторы. На странице ScalaMock шаг за шагом указано
он также может издеваться:
- Классы *Singleton и сопутствующие объекты (статические методы)
- Создание объекта (вызов конструктора)
- Классы с приватными конструкторами
- Финальные классы и классы с финальными методами
- Операторы (методы с символическими именами)
- Перегруженные методы
С другой стороны, дорожная карта говорит мне:
Первый квартал 2016 г. — ScalaMock 4 Как только scala.meta станет доступна, мы планируем начать работу над ScalaMock 4. Если scala.meta выполнит свое обещание, ScalaMock 4 сможет имитировать любой трейт, независимо от сложности его типа.
Кроме того, мы ожидаем, что он также будет поддерживать:
- улучшенный синтаксис: mockObject.expects.method(аргументы) вместо: (mockObject.method _) ожидает (аргументы)
- фиктивное создание объекта (конструкторы)
- имитация одноэлементных и сопутствующих объектов (статические методы)
- издевательство над конечными классами и классами с конечными методами или частными конструкторами
Итак, что правильно? Может ли текущая версия (ScalaMock 3.2) имитировать объекты и конструкторы или нет?