Your SlideShare is downloading. ×

2013 11 11_java_lecture_09

1,109
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,109
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Модульное тестирование на Java Алексей Владыкин 11 ноября 2013 Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 1 / 21
  • 2. 1 Основные идеи 2 JUnit 3 Java Logging API Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 2 / 21
  • 3. Основные идеи Фундаментальная книга по тестированию Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 3 / 21
  • 4. Основные идеи Уровни тестирования Модульное тестирование — проверка работы программы на уровне отдельных модулей (классов, методов) Интеграционное тестирование — проверка совместной работы нескольких модулей Системное тестирование — проверка работы системы в целом Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 4 / 21
  • 5. Основные идеи Test Driven Development 1 Пишем простейший тест, ломающий программу 2 Пишем простейшую реализацию, достаточную для прохождения теста 3 Улучшаем написанный код, не ломая тесты. Возвращаемся к пункту 1 Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 5 / 21
  • 6. Основные идеи Инструменты модульного тестирования Инфраструктуры для написания и запуска тестов JUnit, TestNG Библиотеки проверок FEST Assert, Hamcrest, XMLUnit, HttpUnit Библиотеки для создания тестовых дублеров Mockito, JMock, EasyMock Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 6 / 21
  • 7. JUnit Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 7 / 21
  • 8. JUnit package ru . compscicenter . java2013 . testing ; import org . junit . Test ; import static org . junit . Assert .*; public class StringTest { @Test public void substring () { assertEquals ( " llo " , " Hello " . substring (3)); } } Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 8 / 21
  • 9. JUnit org.junit.ComparisonFailure: expected:<l[l]o> but was:<l[]o> at org.junit.Assert.assertEquals(Assert.java:125) at org.junit.Assert.assertEquals(Assert.java:147) at ru.compscicenter.java2013.testing.StringTest .substring(StringTest.java:10) ... Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 9 / 21
  • 10. JUnit org.junit.Assert assertTrue assertFalse assertEquals assertArrayEquals assertNotEquals assertSame assertNotSame fail Варианты с текстом ошибки и без Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 10 / 21
  • 11. JUnit assert assert " llo " . equals ( " Hello " . substring (3)); assert 1 == 1 : " Arithmetics broken " ; Поддерживаются только булевские условия В исключении нет описания проблемы Надо включать флагом JVM -ea Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 11 / 21
  • 12. JUnit Структура теста (Given) Подготовка тестового окружения (When) Выполнение тестового сценария (Then) Проверки Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 12 / 21
  • 13. JUnit Жизненный цикл теста @BeforeClass Для каждого @Test-метода: создание экземпляра тестового класса @Before @Test @After @AfterClass Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 13 / 21
  • 14. JUnit FEST Assert DEMO Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 14 / 21
  • 15. JUnit Mockito DEMO Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 15 / 21
  • 16. Java Logging API Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 16 / 21
  • 17. Java Logging API Пакет java.util.logging Центральная сущность — java.util.logging.Logger Логгеры образуют иерархию Logger logger = Logger . getLogger ( " ru . compscicenter . java2013 . logging " ); logger . info ( " I ’m logging ! " ); Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 17 / 21
  • 18. Java Logging API Уровни логирования: SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST logger . setLevel ( Level . INFO ); logger . fine ( " I ’m still logging " ); logger . log ( Level . WARNING , " Houston , we have a problem ! " ); Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 18 / 21
  • 19. Java Logging API java.util.logging.Handler Обработчик сообщения Определяет, куда будет записано сообщение java.util.logging.ConsoleHandler java.util.logging.FileHandler Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 19 / 21
  • 20. Java Logging API java.util.logging.Formatter Оформитель сообщения Определяет формат вывода java.util.logging.SimpleFormatter java.util.logging.XMLFormatter Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 20 / 21
  • 21. Что сегодня узнали Важно писать модульные тесты Существует достаточно библиотек, помогающих в этом деле Есть простой стандартный API для логирования Алексей Владыкин Модульное тестирование на Java 11 ноября 2013 21 / 21

×