В ScalaMock, как вернуть mockClass всякий раз, когда кто-то создает новый экземпляр класса?

В PowerMockito мы можем использовать шаблон «whenNew(MyClass).thenReturn(mockMyClass)», когда кто-то хочет создать новый экземпляр MyClass, он получит mockMyClass вместо реального экземпляра.

Можем ли мы делать подобные вещи в ScalaMock или EasyMock? Я потратил целый день на эту проблему.

Это мой сценарий, у меня есть два класса A и B. Внутри класса A будет новый экземпляр класса B.

Теперь я хочу протестировать класс A, и когда класс A создает новый экземпляр класса B, я хочу вернуть фиктивный объект класса B (а не настоящий класс B).

В Java я могу легко решить эту проблему с помощью PowerMock и JUnit, но не могу сделать это в Scala.


person Hoang-Mai Dinh    schedule 14.09.2015    source источник


Ответы (1)


Для EasyMock это напрямую невозможно. Вам нужно использовать PowerMock. См. здесь

person Henri    schedule 15.09.2015
comment
Здравствуйте, спасибо за ответ. В Java я могу легко решить эту проблему с помощью PowerMock, но не могу сделать это в Scala. Знаете ли вы какое-либо другое решение? - person Hoang-Mai Dinh; 15.09.2015
comment
Я не делаю достаточно scala, чтобы иметь ответ. Я бы сам немного рефакторил. Например, переместить новое в специальный метод, а затем сделать частичный макет с EasyMock. - person Henri; 16.09.2015