Как се подигравате със статичен клас?
Как се подигравате със статичен клас?

Видео: Как се подигравате със статичен клас?

Видео: Как се подигравате със статичен клас?
Видео: Как да напишем аспекти с Spring AOP [Пролетно AOP пътуване - Част 1] 2024, Може
Anonim

Създайте интерфейс за DriverManager, подигравам се този интерфейс, инжектирайте го чрез някакъв вид инжекция на зависимост и проверете това подигравам се . Наблюдение: Когато се обадите статичен метод в рамките на а статичен обект, трябва да промените клас в @PrepareForTest. тогава ще трябва да подготвите клас този код се намира в.

Тук можем ли да се подиграваме на статичните методи?

Mockito ни позволява да творим подигравам се обекти. От статичен метод принадлежи към класа, няма начин в Mockito да фалшиви статични методи . Въпреки това, ние можем използвайте PowerMock заедно с рамката Mockito, за да фалшиви статични методи.

можем ли да се подиграваме на статичните методи на C#? 4 отговора. Moq (и други базирани на DynamicProxy подигравателен рамки) не са в състояние подигравам се всичко, което не е виртуално или абстрактно метод . като алтернатива, можеш преработете дизайна си към абстрактни повиквания статични методи , и осигурете тази абстракция на вашия клас чрез инжектиране на зависимост.

По същия начин, хората питат, можем ли да се подиграваме на статичните методи, използвайки MOQ?

Подигравателни статични методи Безплатни инструменти като Moq може само подигравам се интерфейси или виртуални/абстрактни методи на класове с публичен конструктор по подразбиране. Ако Вие трябва наистина фалшиви статични методи , Вие трябва да използвате търговски инструмент като Microsoft Fakes (част от Visual Studio Enterprise) или Typemock Isolator.

Защо статичните методи са лоши?

Във вселената на OO статични методи са антиматерия. Те не трябва да бъдат лошо , но са опасни, защото се използват неправилно. Има само две ситуации, когато статични методи или се използват променливи и това не е мерзост. Статични методи са ценни и валидни метод на създаване на обект.

Препоръчано: