Ինչպե՞ս եք ծաղրում ստատիկ դասը:
Ինչպե՞ս եք ծաղրում ստատիկ դասը:

Video: Ինչպե՞ս եք ծաղրում ստատիկ դասը:

Video: Ինչպե՞ս եք ծաղրում ստատիկ դասը:
Video: Ցանկություններ․ ինչպե՞ս իրականացնել - «Սև արկղ» №39 2024, Դեկտեմբեր
Anonim

Ստեղծեք ինտերֆեյս DriverManager-ի համար, ծաղրել այս ինտերֆեյսը, ներարկեք այն ինչ-որ կախվածության ներարկման միջոցով և ստուգեք դրա վրա ծաղրել . Դիտարկում. Երբ զանգում եք ստատիկ մեթոդ շրջանակներում ա ստատիկ սուբյեկտը, դուք պետք է փոխեք դաս @PrepareForTest-ում: ապա, դուք պետք է պատրաստեք դաս այս կոդը գտնվում է.

Այսպիսով, կարո՞ղ ենք ծաղրել ստատիկ մեթոդները:

Mockito-ն մեզ թույլ է տալիս ստեղծել ծաղրել առարկաներ. Քանի որ ստատիկ մեթոդ պատկանում է դասին, Mockito-ում ճանապարհ չկա ծաղրական ստատիկ մեթոդներ . Այնուամենայնիվ, մենք կարող ենք օգտագործել PowerMock-ը Mockito շրջանակի հետ միասին ծաղրական ստատիկ մեթոդներ.

կարո՞ղ ենք ծաղրել C# ստատիկ մեթոդները: 4 Պատասխաններ. Moq (և այլ DynamicProxy-ի վրա հիմնված ծաղրող շրջանակներ) չեն կարողանում ծաղրել ամեն ինչ, որը վիրտուալ կամ վերացական չէ մեթոդ . Այլընտրանքային, կարող էիր վերափոխեք ձեր դիզայնը վերացական կոչերին ստատիկ մեթոդներ և տրամադրեք այս աբստրակցիան ձեր դասին կախվածության ներարկման միջոցով:

Նմանապես, մարդիկ հարցնում են՝ կարո՞ղ ենք մենք ծաղրել ստատիկ մեթոդները՝ օգտագործելով MOQ:

Ծաղրող ստատիկ մեթոդներ Անվճար գործիքներ, ինչպիսիք են Moq կարող է միայն ծաղրել ինտերֆեյսներ կամ վիրտուալ/վերացական մեթոդները հանրային լռելյայն կոնստրուկտորով դասերի վրա: Եթե դու պետք է իսկապես ծաղրական ստատիկ մեթոդներ , դու անհրաժեշտ է օգտագործել առևտրային գործիք, ինչպիսին է Microsoft Fakes-ը (Visual Studio Enterprise-ի մի մասը) կամ Typemock Isolator-ը:

Ինչու են ստատիկ մեթոդները վատ:

OO-ի տիեզերքում ստատիկ մեթոդներ հակամատերային են. Նրանք չպետք է լինեն վատ , բայց վտանգավոր են, քանի որ սխալ են օգտագործվում։ Միայն երկու իրավիճակ կա, երբ ստատիկ մեթոդներ կամ փոփոխականներ են օգտագործվում, և դա զզվելի չէ: Ստատիկ մեթոդներ արժեքավոր և վավերական են մեթոդ օբյեկտի ստեղծման.

Խորհուրդ ենք տալիս: