Професионална програма
Loading...
kossyo avatar kossyo 1 Точки

Как работят unit test-овете в Judge?

Здравейте, някой може ли да обясни как работят unit test-овете в Judge? Какво се случва отдолу? Понякога ми се случва да напиша един unit test и изведнъж в Judge минават 2 теста вместо един. Как става това? Като цяло ми е интересно да разбера, не само заради това. Благодаря предварително. 

Тагове:
0
Общи приказки
VasilKotsev avatar VasilKotsev 830 Точки

Общо взето OJS run-ва unit тестове върху твоя код. До колкото съм разглеждал репото на форка от Ники Костов, това става благодарение на Judge worker-ите, които позволяват execution-а на submission-ите в изолирана среда, след което се пускат тестове върху него. В повечето задачи от Tech Module-a, предполагам се проверява само крайния output, като се сравнява с очаквания и на базата на минати тестове се дават точки. В ООП курсовете, вече се проверява и с reflection структурата на assembly-тата/class-ове/методи и т.н. Не мога да разбера точно какво питаш, надявам се да съм отговорил на въпроса ти.

0
kossyo avatar kossyo 1 Точки

Благодаря ти за оговора. Не знам дали стана ясно, питах за тестовете на тестовете в Judge. Ако вземем трите отделни секции в Judge от определен изпит (Structure, Business Logic и Unit Tests), горе-долу мога да си представя как работи Judge, за да тества първите две неща (Структура и Бизнес логика), но не знам какво прави, за да тества тестовете, които съм написал аз.

Случва ми се да напиша 1 мой тест и като до зипна и пусна в Judge наведнъж минават 2 теста примерно. А аз си мислех, че на всеки Judge тест отговаря един мой метод, но май излиза, че не е така. Друг феномен, който съм забелязал, е че примерно написвам един мой тест, пускам в Judge, минава един (или 2 ?!) теста. Пиша още един тест, събмитвам пак и не щеш ли, в Judge минават 0 теста. И се питам "Е добре де, какво стана с тоя моя тест, дето си минаваше?" Та излиза, че не ми е ясно какво се случва отдолу в Judge, когато той тества моите тестове. Надявам се да стана ясно. Благодаря!

0
MariyanNikov avatar MariyanNikov 16 Точки

За твойте тестове ти пускат счупена структура или бизнес логика,очаквайки теста ти да хване съответния проблем.

Поне такива бяха моите наблюдения.

 

 

0
VasilKotsev avatar VasilKotsev 830 Точки

Със сигурност не мога да кажа, но най-вероятно се пускат тестове върху твойте тестове. Поне така беше на моя изпит преди време по спомен, а може и да бъркам. Друг вариант, които е по-вероятен, е както каза колегата да пускат грешна структура, бизнес логика върху твойте тестове, но това може само хората, които отговарят за курса и са писали изпита да потвърдят.

0
MariyanNikov avatar MariyanNikov 16 Точки

На JSCore,както и в C# OOP-то имаше някакви авторски решения където съм го срещал това.Дават ти някакъв метод,който трябва да се тества и са изпуснали някакъв знак >=<,очаквайки твоя тест да хване точно този краен случай,ако го хване взимаш точките,ако не ...шанс!

Имаше един конкретен пример,който си спомням на OOP-то,в Set-a на съответно Entity се проверява дали value-то е положително число,ако е по-малко от 0 хвърляш Exception.

Те ти подават клас,който няма тази проверка в Set-a,съответно твоя тест трябва да е написан така,че като Set-ваш това Property с отрицателно число да очаква Exception.В този пример с техния клас и твоя тест няма да мине твоя Unit тест,което значи че адекватно проверяваш този случай и взимаш точките.

Надявам се да си ме разбрал,какво имам предвид,но и не мога да гарантирам,че се проверява на 100% по този начин,но честно да ти кажа звучи логично да е така.

 

0
kossyo avatar kossyo 1 Точки

Звучи логично да е нещо такова. Благодаря ви!

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.