
Информатика: өз цифрлық көмекшімізді жасаймыз 37-сабақ (барлығы 38)
Тесттер мен модульдер өзгерісті қорғайды
Қағаздағы мысалдарды орындалатын тестке айналдырып, бағдарламаны түсінікті бөліктерге бөлеміз.
Картадағы орнымыз
Бұл 72 сабақтың 37-сі, Python блогының (27–38) бөлігі. Тірек сызба тексерілетін өтулерді көрсетеді. 0.3 қағаз келісіміндегі еске салудың бес нәтижесі мен ойдан алынған бастапқы тапсырмаларды жалғастырамыз.
Жағдай және сұрақ
Кеше көмекші мерзімді дұрыс еске салды. Жаңа done командасынан кейін орындалған тапсырмаларға да еске сала бастады. Мұны досыңызға жібермей тұрып қалай байқаймыз? Әр өзгерістен кейін бұрынғы тексерулерді қайта орындатамыз.
Жаңа сөздерді анық түсінейік
Модуль — импортталатын Python файлы: assistant_core.py ережені, assistant.py команданы сақтайды. Импорт модуль атауын өзге файлға қолжетімді етеді. Тест — кіріс пен күтілген нәтижені орындатылатын тексеру; assert айырманы хабарлайды. Бірлік тесті шағын функцияны бөлек, толық жол тесті команданы файл арқылы тексереді. Регрессия — өзгерістен кейін бұрынғы қатенің қайта тууы. Фикстура — алдын ала дайындалған сынақ дерегі. Күтілген мән қате болса, тест пайдасыз; оны әуелі қағаз келісіммен салыстырамыз.
Сабақтың тірек сигналы
Кіріс → ережені тексеру → күйді өзгерту → бақыланатын нәтиже. Бағдарлама қай жерде деректі оқитынын, келісіммен салыстыратынын және қай жерде тек хабарлайтынын көрсетіңіз. Қадам сызбада көрінбесе, кодтан тауып, өз трассаңызға қосыңыз.
Қадамдап талдаймыз
0.3 кестесін алыңыз: орындалған → DONE, мерзімі жоқ → NO_DATE, мерзімі өткен → OVERDUE, бүгін не екі күн қалса → REMIND, одан көп болса → NOT_YET. Әрқайсын бөлек тексеріңіз; мысалда ең қысқа assert бар. <= 2 шартын < 2 етіп көріңіз: екі күн шекарасының тесті құлауы тиіс. Ережені қалпына келтіріп, бәрін жүргізіңіз. Қайталанған id тесті күн тестінен бөлек, өйткені ол басқа шартты қорғайды.
Болжаңыз және тексеріңіз
Нәтиже блогын жабыңыз. Атаулар мәнін жол сайын бақылап, әріп регистрі мен жол ретін қоса нақты мәтінді болжаңыз. Содан кейін ғана кодты step-03 каталогында python3 арқылы орындап, таңба бойынша салыстырыңыз. Бір кірісті өзгертіп, іске қоспай тұрып жаңа болжам жазыңыз. Айырма болса, жауабыңызды кейін ыңғайламай, алғашқы ауытқыған жолды табыңыз.
from datetime import date
from assistant_core import reminder_status
task = {"done": False, "due_date": "2026-10-11"}
actual = reminder_status(task, date(2026, 10, 9))
assert actual == "REMIND"
print("Boundary test passed")
Күтілетін нәтиже
Boundary test passed
Қатені табыңыз
assert result == result тесті нәтиже қате болса да өтеді. Бүгінгі күнді бекітпейтін тест бүгін өтіп, ертең құлауы мүмкін. Нақты күтілген шығысты алдын ала жазып, today мәнін ашық беріңіз.
Жобаға енгізілетін өзгеріс
tests/test_assistant.py бір python3 -m unittest discover -s tests -v командасымен жүреді. Ережелер, файл, CLI бөлек тексеріледі. 0.2-нің үш ойдан алынған жазбасы бастапқы дерек күйінде қалады, жаңа тесттер уақытша көшірмелерді қолданады.
Тапсырма және дәлел
Еске салудың бес нәтижесіне, 0 және 3 орындалғанды санауға, қайталанған id-ге, жарамсыз ақпанға және Ә сақталуына тест жазыңыз. add → done → қайта оқу толық жол тестін қосыңыз. Әуелі ережені әдейі бұзып, тесттің құлағанын көріңіз, кейін қалпына келтіріп, бүкіл тексеруді іске қосу командасын жазып алыңыз.
Жаңа жағдайға көшіру
Мектеп викторинасының ұпай есебі түзетілді. Дұрыс жауап тағы да нөл ұпай алса, оны қай бұрынғы тест табар еді? Кірісті, күтілген шығысты және бөлек тексерілетін шекараны ойлаңыз.
1, 7 және 30 күннен кейін қайталау
1 күннен кейін бетті ашпай ереже мен бір шекара мысалын еске түсіріңіз. 7 күннен кейін жаңа мысалдағы қатені сыныптасыңызға түсіндіріңіз. 30 күннен кейін жоба тестін қайталап, бұрынғы жазба мен нәтиженің сақталғанын тексеріп, ережені өзге міндетке қолданыңыз.
Пікірлер (0)
Пікір қалдыру үшін кіріңіз →
Әзірге пікір жоқ. Бірінші болыңыз.