Үлкен коллекциялармен бірліктерді тестілеу - бұл жағдайды қалай жақсартасыз?

Менде өте үлкен жинақтарды алдын-ала инициализациялауды қажет ететін кейбір сценарийлерді тестілеуді қажет ететін жағдай бар, бірақ алдын ала инициализацияланған деректер жұмыс істеу үшін сынақ үшін қатты кодталған болуы керек.

Мұндай нәрсеге тән тәжірибе бар ма? Немесе сіздердің көпшілігіңіз әр бірліктердің ішіндегі сынық айнымалыны жасайсыз және оны қолданасыз ба? Басқа әзірлеушілердің бұл жағдайды қалай шешіп жатқаны туралы мен өте қызықтырдым.

1

1 жауаптар

Егер бұл деректер әртүрлі сынақтарда қолданылса, деректерді сақтау үшін статикалық контейнерді пайдаланамыз (деректер өзгермейтінін ескере отырып). Содан кейін сынақтар қажет болғанда бұл туралы сілтеме жасай алады.

Егер деректер конструкцияға тән болса, онда ол тар шеңберді ұстап тұру үшін жарақтардың бір бөлігі болып табылады.

Деректердің басқа бөліктері үшін біз сынақ деректерін ашу үшін маскировка/штамптау әдістерін пайдалана аламыз. Біздің деректеріміздің көбісі біздің DAL интерфейстерімізден, тіпті статикалық материалдардан да келеді, сондықтан біз пайдаланатын әдеттегі интерфейс әдістерінің көмегімен статикалық деректерді қамтамасыз ететін интерфейстің сынақ енгізуін таңдаймыз. Көптеген тестілер осы дереккөзді қолдану арқылы жасалады.

Біз оны SpecFlow-пен бірге қолданамыз. DAL кестесіне жіберілген Фонды: кестелерін анықтай аламыз, бұл кезде DAL тесті біздің кодпен деректермен сөйлесу үшін DAL интерфейстерін пайдаланған кезде енгізіледі. Көптеген статикалық деректер үшін біз оны қатаң кодпен немесе DAL коды сұратуы бойынша алуға болатын аумаққа код-ген жасаймыз.

Әрине, мұны қалай істеу керектігі міндетті емес. Бұл мен оны қалай өңдегенін көріп отырмын.


, бірақ алдын ала инициализацияланған деректер бірлік сынақтары үшін қатты кодталған болуы керек   жұмыс істеу үшін

Менің ойымша, өнімді дәлелдеу үшін белгілі бір деректерді талап ететін сынақтарда ешқандай қате жоқ. Бізде нақты бірлік сынақтарының араласуы бар, онда сыртқы заттар бөлінеді және біз дәл осы әдісті сынап көреміз, бірақ кейін SpecFlow-да бізде «кеңістікті пайдалану» сынақтары бар, онда біз заттарды кеңірек көлемде тексереміз. Дегенмен, бұл әлі күнге дейін белгілі бір енгізуді қажет етеді.


Бақылауға алынудың маңызды факторы - бұл бірлік сынақтары мүмкіндігінше бөлек болуы керек. Жабдықтар ауқымды кең ауқымды тест жинағына дейін кеңейтуге мүмкіндік береді, бірақ егер көптеген сынақтарда қолданылатын ықтимал өзгеріп кететін көптеген қолдау деректерін тапсаңыз, қадамды кері қайтару керек.

Біз жақында оны мәжбүрлі емес конфигурация әрекеттерінің статистикалық тізімімен жасадық. Ауыстырудан кейін әсер еткен өзгерістер сынақтан кейін орындалады. Біз оны анықтап, оны түзетеміз, бірақ бұл тривиальды емес еді.

2
қосылды