• Like
  • Save

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Real-life unit tests

  • 11,079 views
Uploaded on

Presentation "Real-life unit tests" shown in May 2011 in DevClub, Tallinn.

Presentation "Real-life unit tests" shown in May 2011 in DevClub, Tallinn.

More in: Technology , Business
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
11,079
On Slideshare
0
From Embeds
0
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
2

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. Real life unit tests Эмуляция БД, SOA и т.д . Andrei Solntsev
  • 2. Как показывают юнит-тесты
    • Очки в боулинг
    • Калькулятор
    • Треугольник
    assertEquals(5, Triangle.hypotenuse(3, 4));
  • 3. В реальной жизни
    • Я не программирую боулинг !
    • Моё ПО другое
    • Юнит-тесты не подходят для моих проектов
  • 4. В чём проблема?
    • Базы данных
    • Веб-сервисы
    • EJB
    Внешние зависимости
  • 5. Какое решение? int: 3, 4 int: 5 Client code code db jdbc Юнит-тест тестирует только это А это надо эмулировать
  • 6. Эмуляторы
    • Требования :
    • При скорости ветра 100 км / ч
    • Подъёмная сила крыла должна быть 150 кН
    Как бы вы стали это тестировать?
  • 7. Эмуляторы
    • Собрать и запустить ВЕСЬ самолёт
    Тестируемый объект Эмулятор ветра ( mocked wind )
    • Протестировать крыло отдельно
    • Дорого
    • Долго
    • Трудно найти причину проблемы
    • Не всегда возможно!
  • 8. Эмуляторы в коде Class Wing { WindService wind = new WindServiceImpl(); public void run() { … wind .blow(); … } } Wing wing = new Wing(); wing. wind = mock ( WindService.class ) ; when ( wind .getSpeed()). thenReturn (100); wing .run(); assertThat( wing .getLift(), equalTo( 150 )); Код системы : Юнит-тест :
  • 9. В КОД !!!!!
  • 10. Наблюдашки
    • Не всегда тесты впереди кода
    • В юнит-тестах НЕЛЬЗЯ использовать БД, SOA и т.д.
    • Чтобы потестировать, иногда надо порефакторить
    • Недостаточно одного вида тестирования
  • 11. http://mockito.org http://www.acgavin.com/hamcrest-and-junit4-4
  • 12. Thank you