පෞද්ගලික ක්රම පරීක්ෂා කිරීම ඒවායේ සංකීර්ණත්වය මත රඳා පවතී. සමහර එක් පේළියේ පෞද්ගලික ක්රම මගින් පරීක්ෂණ සඳහා අමතර වෑයමක් අවශ්ය නොවනු ඇත (මෙය පොදු ක්රම ගැන ද පැවසිය හැකිය), නමුත් සමහර පුද්ගලික ක්රම පොදු ක්රම මෙන් සංකීර්ණ විය හැකි අතර පොදු අතුරු මුහුණත හරහා පරීක්ෂා කිරීම දුෂ්කර ය.
මගේ ප්රියතම තාක්ෂණය වන්නේ පුද්ගලික ක්රම පැකේජය පුද්ගලීකරණය කිරීමයි, එමඟින් එකම පැකේජයක ඒකක පරීක්ෂණයකට ප්රවේශ වීමට ඉඩ ලබා දෙන නමුත් එය අනෙක් සියලුම කේත වලින් සංයුක්ත වේ. සංකීර්ණ තර්කනයේ සියලුම කොටස් ආවරණය කිරීම සඳහා පොදු ක්රම පරීක්ෂණයක් මත විශ්වාසය තැබීම වෙනුවට පුද්ගලික ක්රමවේදය තර්කනය කෙලින්ම පරීක්ෂා කිරීමේ වාසිය මෙය ලබා දෙයි.
මෙය ගූගල් ගුවා පුස්තකාලයේ isVisibleForTesting ව්යාඛ්යාව සමඟ යුගලනය කර ඇත්නම්, ඔබ මෙම පැකේජය පෞද්ගලික ක්රමය පරීක්ෂා කිරීම සඳහා පමණක් පෙනෙන ලෙස සලකුණු කර ඇති අතර එය වෙනත් පංති විසින් කැඳවිය යුතු නොවේ.
මෙම ක්රමයේ විරුද්ධවාදීන් තර්ක කරන්නේ මෙය එකම පැකේජයක් තුළ කේත කිරීම සඳහා සංවෘත කිරීම සහ පුද්ගලික ක්රම විවෘත කරන බවයි. මෙය සංක්ෂිප්ත කිරීම බිඳ දමා පුද්ගලික කේත වෙනත් පංතිවලට විවෘත කරන බව මම එකඟ වන අතර, දැඩි තර්කනයට වඩා සංකීර්ණ තර්කනය පරීක්ෂා කිරීම වැදගත් වන අතර, පරීක්ෂා කිරීම සඳහා පමණක් දෘශ්යමාන ලෙස පැහැදිලිව සලකුණු කර ඇති පැකේජ පෞද්ගලික ක්රම භාවිතා නොකිරීම සංවර්ධකයින්ගේ වගකීම විය යුතුය. කේත පදනම භාවිතා කිරීම සහ වෙනස් කිරීම.
පරීක්ෂා කිරීමට පෙර පුද්ගලික ක්රමය:
private int add(int a, int b){
return a + b;
}
ඇසුරුම් පුද්ගලික ක්රමය පරීක්ෂා කිරීමට සූදානම්:
@VisibleForTesting
int add(int a, int b){
return a + b;
}
සටහන: එකම පැකේජයක පරීක්ෂණ තැබීම ඒවා එකම භෞතික ෆෝල්ඩරයකට දැමීමට සමාන නොවේ. ඔබේ ප්රධාන කේතය සහ පරීක්ෂණ කේතය වෙනම භෞතික ෆෝල්ඩර ව්යුහයකට වෙන් කිරීම සාමාන්යයෙන් හොඳ පුරුද්දකි. නමුත් එකම පැකේජයේ ඇති ආකාරයට පන්ති අර්ථ දක්වා ඇති තාක් කල් මෙම තාක්ෂණය ක්රියාත්මක වේ.