2012 11 28_java_lecture11

2,296 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
2,296
On SlideShare
0
From Embeds
0
Number of Embeds
1,968
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2012 11 28_java_lecture11

  1. 1. Модульное тестирование на Java Алексей Владыкин 28 ноября 2012Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 1 / 21
  2. 2. 1 Основные идеи2 JUnit3 Mockito4 Java Logging API Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 2 / 21
  3. 3. Основные идеи1 Основные идеи2 JUnit3 Mockito4 Java Logging API Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 3 / 21
  4. 4. Основные идеиУровни тестирования Модульное тестирование — проверка работы программы на уровне отдельных модулей (классов, методов) Интеграционное тестирование — проверка совместной работы нескольких модулей Системное тестирование — проверка работы системы в целом Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 4 / 21
  5. 5. Основные идеиTest Driven Development 1 Пишем простейший тест, ломающий программу 2 Пишем простейшую реализацию, достаточную для прохождения теста 3 Улучшаем написанный код, не ломая тесты. Возвращаемся к пункту 1 Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 5 / 21
  6. 6. Основные идеиСредства тестирования Инфраструктуры для написания и запуска тестов JUnit, TestNG Библиотеки проверок FEST Assert, Hamcrest, XMLUnit, HttpUnit Библиотеки для создания тестовых дублеров Mockito, JMock, EasyMock Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 6 / 21
  7. 7. JUnit1 Основные идеи2 JUnit3 Mockito4 Java Logging API Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 7 / 21
  8. 8. JUnitpackage ru . compscicenter . java2012 . testing ;import org . junit . Test ;import static org . junit . Assert .*;public class StringTest { @Test public void testSubstring () { assertEquals ( " llo " , " Hello " . substring (3)); }} Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 8 / 21
  9. 9. JUnitorg.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.java2012.testing.StringTest .testSubstring(StringTest.java:10) ... Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 9 / 21
  10. 10. JUnitorg.junit.Assert assertTrue assertFalse assertEquals assertArrayEquals assertNotEquals assertSame assertNotSame fail Варианты с текстом ошибки и без Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 10 / 21
  11. 11. JUnitassertassert " llo " . equals ( " Hello " . substring (3));assert 1 == 1 : " Arithmetics broken " ; Поддерживаются только булевские условия В исключении нет описания проблемы Надо включать флагом JVM -ea Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 11 / 21
  12. 12. JUnitСтруктура теста Подготовка тестируемого объекта Выполнение тестового сценария Проверки Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 12 / 21
  13. 13. JUnitЖизненный цикл теста @BeforeClass Для каждого @Test-метода: создание экземпляра тестового класса @Before @Test @After @AfterClass Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 13 / 21
  14. 14. Mockito1 Основные идеи2 JUnit3 Mockito4 Java Logging API Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 14 / 21
  15. 15. MockitoВозможности Mockito Stubbing — создание тестовых дублеров Mocking — проверка правильности вызовов дублера из тестируемого модуля Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 15 / 21
  16. 16. Java Logging API1 Основные идеи2 JUnit3 Mockito4 Java Logging API Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 16 / 21
  17. 17. Java Logging API Пакет java.util.logging Центральная сущность — java.util.logging.LoggerLogger logger = Logger . getLogger ( " ru . compscicenter . java2012 . logging " );logger . info ( " I ’m logging ! " ); Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 17 / 21
  18. 18. Java Logging API Уровни логирования: SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINESTlogger . setLevel ( Level . INFO );logger . fine ( " I ’m still logging " );logger . log ( Level . WARNING , " Houston , we have a problem ! " ); Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 18 / 21
  19. 19. Java Logging APIjava.util.logging.Handler Обработчик сообщения Определяет, куда будет записано сообщение java.util.logging.ConsoleHandler java.util.logging.FileHandler Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 19 / 21
  20. 20. Java Logging APIjava.util.logging.Formatter Оформитель сообщения Определяет формат вывода java.util.logging.SimpleFormatter java.util.logging.XMLFormatter Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 20 / 21
  21. 21. Что сегодня узнали Важно писать модульные тесты Существует достаточно библиотек, помогающих в этом деле Есть простой стандартный API для логирования Алексей Владыкин Модульное тестирование на Java 28 ноября 2012 21 / 21

×