{"id":19514602,"url":"https://github.com/jcoderpaul/junitstudy","last_synced_at":"2025-07-04T06:07:49.640Z","repository":{"id":64248804,"uuid":"573714105","full_name":"JcoderPaul/JunitStudy","owner":"JcoderPaul","description":"JUnit framework simple tests in various situations. Section cheat sheet. For memory!","archived":false,"fork":false,"pushed_at":"2022-12-06T16:57:01.000Z","size":119,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-02-25T23:32:53.400Z","etag":null,"topics":["java","java-collections","junit"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JcoderPaul.png","metadata":{"files":{"readme":"ReadMe.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-12-03T07:25:20.000Z","updated_at":"2024-06-11T07:43:48.000Z","dependencies_parsed_at":"2023-01-15T06:31:13.341Z","dependency_job_id":null,"html_url":"https://github.com/JcoderPaul/JunitStudy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JcoderPaul/JunitStudy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FJunitStudy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FJunitStudy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FJunitStudy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FJunitStudy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JcoderPaul","download_url":"https://codeload.github.com/JcoderPaul/JunitStudy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JcoderPaul%2FJunitStudy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263457183,"owners_count":23469290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","java-collections","junit"],"created_at":"2024-11-10T23:37:00.340Z","updated_at":"2025-07-04T06:07:49.613Z","avatar_url":"https://github.com/JcoderPaul.png","language":"Java","readme":"### *** Тестирование программ при помощи JUnit ***\n\nВ данном разделе приведены примеры простых реализаций \nколлекций ArrayList, HashSet, HashMap. Каждая коллекция\nпосле написания покрывается тестами на базе Junit4.\n\n(отрывок wiki-статьи)\n\nРазработка через тестирование (англ. test-driven development, TDD) — \nтехника разработки программного обеспечения, которая основывается \nна повторении очень коротких циклов разработки: \n- сначала пишется тест, покрывающий желаемое изменение; \n- затем пишется код, который позволит пройти тест;\n- наконец проводится рефакторинг нового кода к соответствующим стандартам. \n\nКент Бек, считающийся изобретателем этой техники, утверждал в 2003 году, \nчто разработка через тестирование поощряет простой дизайн и внушает \nуверенность (англ. inspires confidence).\n\nВ 1999 году при своём появлении разработка через тестирование была тесно \nсвязана с концепцией «сначала тест» (англ. test-first), применяемой в \nэкстремальном программировании, однако позже выделилась как независимая \nметодология.\n\nТест — это процедура, которая позволяет либо подтвердить, либо опровергнуть \nработоспособность кода. Когда программист проверяет работоспособность \nразработанного им кода, он выполняет тестирование вручную.\n\nРазработка через тестирование требует от разработчика создания автоматизированных \nмодульных тестов, определяющих требования к коду непосредственно перед написанием \nсамого кода. \n\nТест содержит проверки условий, которые могут либо выполняться, либо нет. \nКогда они выполняются, говорят, что тест пройден. Прохождение теста подтверждает \nповедение, предполагаемое программистом. Разработчики часто пользуются \nбиблиотеками для тестирования (англ. testing frameworks) для создания и \nавтоматизации запуска наборов тестов. Н\n\nНа практике модульные тесты покрывают критические и нетривиальные участки кода. \nЭто может быть код, который подвержен частым изменениям, код, от работы которого \nзависит работоспособность большого количества другого кода, или код с большим \nколичеством зависимостей.\n\n### *** FRAMEWORK JUNIT ***\n\nJUnit — библиотека для модульного тестирования программ Java. Созданный Кентом \nБеком и Эриком Гаммой, JUnit принадлежит семье фреймворков xUnit для разных \nязыков программирования, берущей начало в SUnit Кента Бека для Smalltalk. \nJUnit породил экосистему расширений — JMock, EasyMock, DbUnit, HttpUnit и т. д.\n\nБиблиотека JUnit была портирована на другие языки, включая PHP (PHPUnit), C# \n(NUnit), Python (PyUnit), Fortran (fUnit), Delphi (DUnit), Free Pascal (FPCUnit), \nPerl (Test::Unit), C++ (CPPUnit), Flex (FlexUnit), JavaScript (JSUnit).\n\nJUnit – это Java фреймворк для тестирования, т. е. тестирования отдельных участков \nкода, например, методов или классов. Опыт, полученный при работе с JUnit, важен в \nразработке концепций тестирования программного обеспечения.\n\nJUnit позволяет в любой момент быстро убедиться в работоспособности кода. \nЕсли программа не является совсем простой и включает множество классов и методов, \nто для её проверки может потребоваться значительное время. Естественно, что \nданный процесс лучше автоматизировать. Использование JUnit позволяет проверить \nкод программы без значительных усилий и не занимает много времени.\n\nЮнит тесты классов и функций являются своего рода документацией к тому, что \nожидается в результате их выполнения. И не просто документацией, а документацией \nкоторая может автоматически проверять код на соответствие предъявленным функциям.\n\n### *** Виды тестирования ***\n\nТестирование программного обеспечение можно разделить на два вида:\n- тестирование черного ящика;\n- тестирование белого ящика.\n\nВо время тестирования программы как черного ящика внутренняя структура \nприложения в расчет не принимается. Все, что имеет значение, это функциональность, \nкоторую приложение должно обеспечить. \n\nПри тестировании программы, как белого ящика, во внимание принимается внутренняя \nструктура, т.е. класс и методы. Кроме этого, тестирование можно разделить на четыре \nуровня:\n- юнит тесты — тестирование отдельных участков кода;\n- интеграционное тестирование — тестирование взаимодействия и совместной работы компонентов;\n- системное тестирование — тестирование всей системы как целого;\n- приемное тестирование — итоговое тестирование готовой системы на соответствие требованиям.\n\nЮнит тестирование по определению является тестированием белого ящика.\n\nТакже см.\n- [Документация по Junit5 (ENG)](https://junit.org/junit5/docs/current/user-guide/);\n- [GitHub команды разработчиков Junit](https://github.com/junit-team/junit5/);\n\nВ данном разделе содержаться:\n- [JunitWithCollectionTaskOne](https://github.com/JcoderPaul/JunitStudy/tree/master/JunitWithCollectionTaskOne) - простые реализации коллекций ArrayList, ArrayLinkedList и HashSet;\n- [JunitWithCollectionTaskTwo](https://github.com/JcoderPaul/JunitStudy/tree/master/JunitWithCollectionTaskTwo) - чуть усложненная реализация тех же коллекций;\n- [JunitWithCollectionTaskThree](https://github.com/JcoderPaul/JunitStudy/tree/master/JunitWithCollectionTaskThree) - те же коллекции, но уже реализующие Iterable;\n- [JunitWithCollectionTaskFour](https://github.com/JcoderPaul/JunitStudy/tree/master/JunitWithCollectionTaskFour) - простая реализация коллекции HashMap;\n- [JunitWithCollectionTaskFive](https://github.com/JcoderPaul/JunitStudy/tree/master/JunitWithCollectionTaskFive) - простая реализация коллекции Queue;\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcoderpaul%2Fjunitstudy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjcoderpaul%2Fjunitstudy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjcoderpaul%2Fjunitstudy/lists"}