Unit testing and automation Flashcards

На основе книги Хорикова

1
Q

Цель unit-тестирования

A

Обеспечение стабильного роста проекта.

Хорошие юнит-тесты помогают предотвратить стагнацию и сохранить темп разработки со временем.
С такими тестами вы будете уверены в том, что изменения не приведут к багам. В свою очередь, это упростит рефакторингкода или добавления новой функциональности.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Возможность покрытия кода юнит-тестами это какой признак?

A

Хороший негативный признак качества кода. Т.е. если это невозможно, то код точно плохой.

Но это плохой позитивный признак - возможность покрытия не гарантирует качество кода.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что создаёт установление конкретного процента покрытия кода как цели?

A

Создаёт неправильный стимул, противоречащей цели юнит-тестирования.

Вместо тестирования - люди начинают сосредотачиваться на достижении искусственной цели.

Высокий процент обеспечивать хорошо, но это не должно являться целью.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Метрики покрытия кода каким признаком являются?

A

Хороший негативный признак.

Низкий процент покрытия - хороший признак проблем с тестами.
Высокий процент покрытия - не гарантирует высокое качество тестов.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Юнит тестом называется автоматизированный тест, который

A
  • Проверяет правильность работы небольшого фрагмента кода (так же называемого юнитом)
  • делает это быстро
  • поддерживая изоляцию другого кода
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Какие школы юнит-тестирования бывают?

A
  • Классическая школа
    • Кент Бек
  • Лондонская школа
    • Стив Фримен, Нат Прайс
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

В чём несогласие двух школ юнит-тестирования?

A

Вопрос изоляции - корень различий. Все остальные различия школ проистекают из несогласия относительно того, что же именно означает изоляция.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Значение изоляции в лондонской школе?

A

Изоляция тестируемого кода от его зависимостей (заглушки).

Если класс имеет зависимость от другого класса или несколько классов, все такие зависимости должны быть замененеы на тестовые заглушки (test doubles). Это позволит вам сосредоточиться исключительно на тестируемом классе, изолировав его поведение от внешнего влияния.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Что такое mock?

A

вид заглушки, которая позволяет проанализировать взаимодействия между тестируемой системой и ее коллаббораторами

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Что такое тестовая заглушка? test-double

A

общий термин, описывающий любые разновидности фиктивных зависимостей, используемых в тестах

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Размер юнита в лондонской школе

A

Юнит должен быть одним классом или методом внутри класса.

Юнит не может быть больше по определению.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Классический подход к изоляции

A

Можно тестировать несколько классов одновременно, при условии, что все они находятся в памяти и не обращаются к совместному состоянию (shared state), через которое тесты могут влиять не выполнение друг друга.

Примеры: внепроцессные (out-of-process) зависимости:
- база данных
- файловая система

How well did you know this?
1
Not at all
2
3
4
5
Perfectly