|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/kurs-java-testy-jednostkowe/
课程评论:没有评论
**Java #8 单元测试工作坊** 本课程是 Zajavka 系列工作坊的第八期,专注于 Java 单元测试。单元测试是软件开发的关键组成部分,能够自动验证代码的正确性。本课程适合初学者和有经验的开发者,旨在帮助您学习编写有效的单元测试,并理解测试如何提高应用程序的质量和稳定性。 **课程主题:** * **什么是测试?为什么需要测试?** * 测试的定义及其在软件生命周期中的作用。 * 不同类型的测试:单元测试、集成测试、系统测试、验收测试。 * 单元测试的优势:早期发现错误、代码文档、便于重构。 * **JUnit** * JUnit 简介,Java 中最流行的单元测试库。 * 测试环境配置。 * JUnit 的基本注解和结构:`@Test`、`@Before`、`@After`、`assertEquals`、`assertTrue` 等。 * 使用 JUnit 编写单元测试的示例。 * **编写优秀单元测试的原则** * 优秀单元测试的特征:快速、独立、可重复。 * 遵循 FIRST 原则(快速、独立、可重复、自验、及时)编写测试。 * 编写单元测试的实用技巧和最佳实践。 * **代码覆盖率** * 什么是代码覆盖率以及其重要性。 * Java 中代码覆盖率的测量工具(例如 JaCoCo)。 * 如何解读覆盖率结果并追求最优覆盖率。 * **TDD(测试驱动开发)** * TDD 简介:原则和理念。 * TDD 周期:红-绿-重构。 * TDD 实践示例:先编写测试,再编写代码,然后进行重构。 * **实践任务和项目** * 编写单元测试的实践练习。 * 通过项目应用所学知识。 * 检查对课程材料的理解和测试编写能力的测试任务。 **课程背景:** 设想您已经编写了大量运行良好的代码,并且手动检查过其功能。现在您想修改应用程序的很大一部分。您如何确保没有破坏任何东西?您要么再次手动检查,要么编写测试,这些测试就像在测试您的程序。 **技术说明:** 本工作坊使用 Java 17 进行录制,测试也基于 Java 17。如果您使用更新的 Java 版本,可能会有一些细微的 API 变化。为了保持一致性,建议使用 JDK 17,以确保您的示例与录制内容一致,但我们不禁止使用更新的 JDK,因为 Java 通常保持向后兼容。 在工具版本方面,工作坊的核心内容基于 JUnit 5 进行讲解。如果 JUnit 的新版本出现对初学者学习重要的新功能,本课程将进行更新和扩展。
Zapraszam Cię na warsztat poświęcony testom jednostkowym w języku Java! Testowanie jednostkowe to kluczowy element procesu tworzenia oprogramowania, który pozwala na automatyczne sprawdzanie poprawności działania kodu. Mój kurs przeznaczony jest zarówno dla początkujących, jak i doświadczonych programistów, którzy chcą nauczyć się pisać skuteczne testy jednostkowe i zrozumieć, jak testy mogą poprawić jakość i stabilność aplikacji.Tematyka warsztatu:Czym jest testowanie? Po co się testuje?Definicja testowania i jego rola w cyklu życia oprogramowania.Rodzaje testów: jednostkowe, integracyjne, systemowe, akceptacyjne.Korzyści płynące z testów jednostkowych: wczesne wykrywanie błędów, dokumentacja kodu, ułatwienie refaktoryzacji.JUnitWprowadzenie do JUnit, najpopularniejszej biblioteki do testów jednostkowych w Javie.Konfiguracja środowiska testowego.Podstawowe adnotacje i konstrukcje w JUnit: @Test, @Before, @After, assertEquals, assertTrue, etc.Przykłady pisania testów jednostkowych z użyciem JUnit.Zasady pisania dobrych testów jednostkowychCechy dobrych testów jednostkowych: szybkie, izolowane, powtarzalne.Pisanie testów zgodnie z zasadą FIRST (Fast, Independent, Repeatable, Self-validating, Timely).Praktyczne wskazówki i najlepsze praktyki w pisaniu testów jednostkowych.Pokrycie kodu testamiCo to jest pokrycie kodu testami i dlaczego jest ważne?Narzędzia do mierzenia pokrycia kodu w Javie (np. JaCoCo).Jak interpretować wyniki pokrycia i jak dążyć do optymalnego pokrycia kodu?TDD (Test-Driven Development)Wprowadzenie do TDD: zasady i filozofia.Cykl TDD: Red-Green-Refactor.Przykłady podejścia TDD w praktyce: pisanie testów przed kodem, refaktoryzacja.Zadania praktyczne i projektĆwiczenia praktyczne w pisaniu testów jednostkowych.Praca nad projektem, który pozwoli na zastosowanie wiedzy w praktyce.Zadania sprawdzające zrozumienie materiału i umiejętność pisania testów.Wyobraź sobie, że napisaliśmy już dużo kodu, który działa i sprawdziliśmy ręcznie, że robi to, co powinien. Teraz chcemy zmodyfikować sporą część aplikacji. W jaki sposób możemy upewnić się, że nic nie popsuliśmy? Albo możemy zrobić to znowu ręcznie, albo napisać testy, które można rozumieć jak program testujący nasz program.Warsztat ten jest ósmym warsztatem w ramach ścieżki Zajavka. Oczywiście możesz go realizować niezależnie od innych moich materiałów.Ten warsztat został nagrany w Java 17. Testy w tym warsztacie również odnoszą się do Java 17. Ma to o tyle znaczenie, że jeżeli będziesz korzystać z nowszych wersji Java, to teoretycznie mogły tam nastąpić jakieś kosmetyczne zmiany. Dlatego dla spójności, zalecamy korzystanie z JDK 17, żeby Twoje przykłady zachowywały się tak jak na nagraniach, ale nie zabraniamy korzystać z nowszego JDK. Pamiętajmy, że Java z założenia jest kompatybilna wstecznie.Jeżeli natomiast chodzi o wersje narzędzi, to struktura warsztatu została przygotowana w ten sposób, że bazowe mechanizmy JUnit (biblioteka, o której będziemy rozmawiać) są wyjaśnione na JUnit 5. Jeżeli w nowszych wersjach pojawią się funkcjonalności, które są istotne (naszym zdaniem) na tym poziomie nauki, to zakres warsztatu będzie rozszerzany i będziemy do niego dodawać kolejne materiały.