Кіріспе
Бағдарламалық жасақтаманы сынау құралы
doctest – Python бағдарламалау тілінің стандартты кітапханасына кіретін модуль. Ол стандартты Python интерпретаторы қабығынан алынған және docstrings-ке көшіріліп жапсырылған нәтижелерге негізделген тесттерді оңай құруға мүмкіндік береді.
Сауатты бағдарламалау және доктесттер
doctest Python бағдарламасын әңгімелік мәтінге енгізуге мүмкіндік бермесе де, ол тексерілетін мысалдарды docstrings-ке енгізуге мүмкіндік береді, ал docstrings басқа мәтіндерді де қамтуы мүмкін. Docstrings бағдарламалық файлдардан HTML немесе PDF сияқты басқа форматтарда құжаттама жасау үшін алынуы мүмкін. Бағдарламалық файл құжаттаманы, тесттерді, сондай-ақ кодты және тесттерді кодқа қарағанда оңай тексеруге мүмкіндік береді. Бұл кодтың, тесттердің және құжаттаманың бірге дамуына жағдай жасайды.
Кітапханаларды мысалмен құжаттау
Доктрестер кітапхананы API-дің қалай қолданылатынын көрсету арқылы оған таныстыруға өте ыңғайлы. Python интерактивті интерпретаторының нәтижелеріне сүйене отырып, кітапхананы сынап көретін тесттерді мәтінмен біріктіруге болады, осылай күтілетін нәтижелерді көрсетуге болады.
Мысалдар
Бірінші мысал баяндамалық мәтіннің docstring-те тексеруге болатын мысалдармен қалай араластырылуы мүмкін екенін көрсетеді. Екінші мысалда doctest-тің тағы да бірнеше мүмкіндіктері мен олардың түсіндірмелері ұсынылған. Үшінші мысал файл тікелей іске қосылғанда файлдың барлық doctest-терін іске қосу үшін жасалған, бірақ модуль ретінде импортталғанда тесттер іске қосылмайды.
Doctest және құжаттама генераторлары
Epydoc-тың EpyText форматы мен Docutils-тің reStructuredText форматы екеуі де деректердегі (docstrings) doctest бөлімдерін белгілеуді қолдайды.
Басқа бағдарламалау тілдерінде іске асыру
C++ тілінде doctest framework – тесттерді өндірістік кодқа ең жақын мүмкіндікпен, минималды қосымша шығындармен жазуға және оларды бинарлық файлдан жоюға болатын тұжырымдаманы іске асыру болып табылады. ExUnit. DocTest Elixir кітапханасы Doctest сияқты функционалды іске асырады. Doctest Haskell үшін жасалған нұсқа. Elm-де құжаттамалық тесттерді жазу. Rust-та құжаттамалық тесттерді жазу. Elixir-де құжаттамалық тесттерді жазу. byexample Markdown, reStructuredText және басқа мәтіндік құжаттарда Python, Ruby, Shell, JavaScript, C/C++, Java, Go, Rust сияқты бірнеше танымал бағдарламалау тілдері үшін doctest-терді жазуды қолдайды.