Писането на единични тестове може да бъде трудно и понякога добрият дизайн трябва да се жертва с единствената цел на проверка.Често удостоверяемостта съответства на добрия дизайн, но това не винаги е така.Например, окончателните класове и методи не могат да се използват, понякога частните методи трябва да бъдат защитени или ненужно преместени в сътрудник, статичните методи трябва да се избягват напълно и т.н. просто поради ограниченията на съществуващите рамки.PowerMock е рамка, която разширява други макетни библиотеки като EasyMock с по-мощни възможности.PowerMock използва персонализиран манипулатор на класове и байткоди, за да позволи да се подиграва на статични методи, конструктори, крайни класове и методи, частни методи, премахване на статични инициализатори и други.Чрез използване на персонализиран клас за зареждане не трябва да се правят промени в IDE или сървърите за непрекъсната интеграция, което опростява приемането.Разработчиците, запознати с поддържаните макетни рамки, ще намерят PowerMock за лесен за използване, тъй като целият API за очаквания е един и същ, както за статичните методи, така и за конструкторите.PowerMock има за цел да разшири съществуващите API с малък брой методи и пояснения, за да даде възможност за допълнителни функции.В момента PowerMock поддържа EasyMock и Mockito .... Когато пишете тестовете на единици, често е полезно да заобиколите капсулирането и затова PowerMock включва няколко функции, които опростяват отражението, особено полезно за тестване.Това позволява лесен достъп до вътрешно състояние, но също така опростява частични и частни подигравки.Моля, обърнете внимание, че PowerMock е предназначен главно за хора с експертни познания в тестване на единици.Поставянето му в ръцете на младши разработчици може да причини повече вреда, отколкото полза.
powermock