EasyMock: издеваться над новой операцией возможно? - PullRequest
1 голос
/ 07 июля 2011

Можно ли сделать что-то подобное с EasyMock:

class ClassName{
   void method(){
      TypeToMock a = new TypeToMock();
   }
}

и я хочу высмеивать TypeToMock, не передавая его в качестве значения классу ClassName. Является ли это возможным? Если так, то как?

1 Ответ

1 голос
/ 07 июля 2011

Нет, я не думаю, что это возможно.

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

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

Если ваш класс создает объект, используя new несколько раз, тогда вы можете внедрить фабрику, которая вместо этого создает экземпляры объектов. тогда вы можете предоставить фиктивную фабрику, которая производит фиктивные экземпляры.

...