JV Java  ·  30 вопросов  ·  ~85 мин  ·  ⏱ Таймер 25:00  ·  Сложный  · 

Тестирование с JUnit и Mockito

Профессиональный тест по теме «Тестирование с JUnit и Mockito»: сложные фрагменты кода, архитектурные компромиссы, диагностика и надёжность. Вопросы перемешаны: встречаются трассировка, ошибка компиляции, выбор правки, граничный сценарий и оценка инженерного компромисса. Базовая версия — Java 25 LTS; если версия не названа отдельно, используются устойчивые правила, совместимые с Java 21.

Отвечено: 0 из 30
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На 30 вопросов отведено 85 минут. В каждом вопросе верен только один вариант; близкие ответы различаются стадией ошибки, порядком действий или границей контракта. После завершения вы увидите общий результат, результаты по 6 тематическим шкалам и объяснения.
Вопрос 1 из 30
На какое правило следует опираться при разборе темы «Структура теста» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 2 из 30
Какое утверждение о механизме «Интеграционные проверки» верно в контексте раздела «Тестирование с JUnit и Mockito»?
Вопрос 3 из 30
Какой граничный случай особенно важен для темы «Производительность и эксплуатация» в разделе «Тестирование с JUnit и Mockito»?
JavaПроизводительность и эксплуатация · фрагмент для анализа
// ...
    service.create(new Order(1));
    assertNotNull(repository.findById(1));
}
Вопрос 4 из 30
Как точнее оценить пользу и цену решения по теме «Интеграционные проверки» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 5 из 30
Почему этот тест может завершиться ошибкой, хотя значение ThreadLocal установлено перед проверкой?
JavaТестирование и диагностика · фрагмент для анализа
var tx = new ThreadLocal<String>();
tx.set("active");

org.junit.jupiter.api.Assertions.assertTimeoutPreemptively(
    java.time.Duration.ofMillis(100),
    () -> org.junit.jupiter.api.Assertions.assertEquals("active", tx.get())
);
Вопрос 6 из 30
Какая правка точнее всего устраняет причину проблемы по теме «Тестирование и диагностика» в разделе «Тестирование с JUnit и Mockito»?
JavaТестирование и диагностика · фрагмент для анализа
// Фрагмент на ревью
assertTrue(result.equals(expected), "wrong result");
Вопрос 7 из 30
Как лучше исправить или прояснить поведение темы «Подмены» в разделе «Тестирование с JUnit и Mockito»?
JavaПодмены · фрагмент для анализа
// Фрагмент на ревью
verify(repo).find(id);
verify(repo).save(entity);
verify(cache).invalidate(id);
verify(events).publish(any());
Вопрос 8 из 30
Какое ограничение механизма «Подмены» нельзя упускать при работе с разделом «Тестирование с JUnit и Mockito»?
JavaПодмены · фрагмент для анализа
// Минимальный пример
verify(repo).find(id);
verify(repo).save(entity);
verify(cache).invalidate(id);
verify(events).publish(any());
Вопрос 9 из 30
Как поведёт себя фрагмент по теме «Интеграционные проверки» при разборе раздела «Тестирование с JUnit и Mockito»?
JavaИнтеграционные проверки · фрагмент для анализа
@WebMvcTest(OrderController.class)
class OrderControllerTest {
    @MockBean OrderService service;
    @MockBean OrderMapper mapper;
}
Вопрос 10 из 30
Что произойдёт с кодом по теме «Подмены» в разделе «Тестирование с JUnit и Mockito»?
JavaПодмены · фрагмент для анализа
verify(repo).find(id);
verify(repo).save(entity);
verify(cache).invalidate(id);
verify(events).publish(any());
Вопрос 11 из 30
Как точнее оценить пользу и цену решения по теме «Производительность и эксплуатация» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 12 из 30
На какое правило следует опираться при разборе темы «Производительность и эксплуатация» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 13 из 30
Какой инженерный компромисс характерен для темы «Подмены» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 14 из 30
Как лучше исправить или прояснить поведение темы «Параметризация» в разделе «Тестирование с JUnit и Mockito»?
JavaПараметризация · фрагмент для анализа
// Фрагмент на ревью
@ParameterizedTest
@CsvSource({"0,0", "1,1", "-1,-1"})
void normalize(int input, int expected) {
    assertEquals(expected, service.normalize(input));
}
Вопрос 15 из 30
Что важно учитывать при применении механизма «Параметризация» из раздела «Тестирование с JUnit и Mockito» в рабочем проекте?
Вопрос 16 из 30
Какая правка точнее всего устраняет причину проблемы по теме «Производительность и эксплуатация» в разделе «Тестирование с JUnit и Mockito»?
JavaПроизводительность и эксплуатация · фрагмент для анализа
// Фрагмент на ревью
@org.junit.jupiter.api.parallel.Execution(org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT)
@Test void createsOrder() {
    repository.deleteAll();
    service.create(new Order(1));
    assertNotNull(repository.findById(1));
}
Вопрос 17 из 30
Какой инженерный компромисс характерен для темы «Структура теста» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 18 из 30
Какой диагноз для кода по теме «Производительность и эксплуатация» в разделе «Тестирование с JUnit и Mockito» будет точным?
JavaПроизводительность и эксплуатация · фрагмент для анализа
@org.junit.jupiter.api.parallel.Execution(org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT)
@Test void createsOrder() {
    repository.deleteAll();
    service.create(new Order(1));
    assertNotNull(repository.findById(1));
}
Вопрос 19 из 30
Какое изменение сделает код по теме «Структура теста» в разделе «Тестирование с JUnit и Mockito» надёжнее?
JavaСтруктура теста · фрагмент для анализа
// Фрагмент на ревью
@Test void orderFlow() {
    createUser(); createProduct(); createOrder(); pay(); cancel(); refund();
    assertEquals(...); assertEquals(...); assertEquals(...);
}
Вопрос 20 из 30
Что нужно отдельно проверить на границе контракта «Структура теста» в разделе «Тестирование с JUnit и Mockito»?
JavaСтруктура теста · фрагмент для анализа
// Минимальный пример
@Test void orderFlow() {
    createUser(); createProduct(); createOrder(); pay(); cancel(); refund();
    assertEquals(...); assertEquals(...); assertEquals(...);
}
Вопрос 21 из 30
На какое правило следует опираться при разборе темы «Подмены» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 22 из 30
Какое замечание о сопровождении или производительности темы «Тестирование и диагностика» в разделе «Тестирование с JUnit и Mockito» справедливо?
Вопрос 23 из 30
Какой граничный случай особенно важен для темы «Интеграционные проверки» в разделе «Тестирование с JUnit и Mockito»?
JavaИнтеграционные проверки · фрагмент для анализа
// ...
    @MockBean OrderService service;
    @MockBean OrderMapper mapper;
}
Вопрос 24 из 30
Какой диагноз для кода по теме «Структура теста» в разделе «Тестирование с JUnit и Mockito» будет точным?
JavaСтруктура теста · фрагмент для анализа
@Test void orderFlow() {
    createUser(); createProduct(); createOrder(); pay(); cancel(); refund();
    assertEquals(...); assertEquals(...); assertEquals(...);
}
Вопрос 25 из 30
Какое утверждение о механизме «Тестирование и диагностика» верно в контексте раздела «Тестирование с JUnit и Mockito»?
Вопрос 26 из 30
Как поведёт себя фрагмент по теме «Тестирование и диагностика» при разборе раздела «Тестирование с JUnit и Mockito»?
JavaТестирование и диагностика · фрагмент для анализа
assertTrue(result.equals(expected), "wrong result");
Вопрос 27 из 30
В каком дополнительном сценарии вывод о теме «Параметризация» в разделе «Тестирование с JUnit и Mockito» может оказаться неверным?
JavaПараметризация · фрагмент для анализа
// ...
void normalize(int input, int expected) {
    assertEquals(expected, service.normalize(input));
}
Вопрос 28 из 30
Какое правило Java действует для темы «Параметризация» в разделе «Тестирование с JUnit и Mockito»?
Вопрос 29 из 30
Какое изменение сделает код по теме «Интеграционные проверки» в разделе «Тестирование с JUnit и Mockito» надёжнее?
JavaИнтеграционные проверки · фрагмент для анализа
// Фрагмент на ревью
@WebMvcTest(OrderController.class)
class OrderControllerTest {
    @MockBean OrderService service;
    @MockBean OrderMapper mapper;
}
Вопрос 30 из 30
Какое ограничение выбранного способа параметризации важно учесть?
JavaПараметризация · фрагмент для анализа
@ParameterizedTest
@CsvSource({"0,0", "1,1", "-1,-1"})
void normalize(int input, int expected) {
    assertEquals(expected, service.normalize(input));
}

Ответьте на все 30 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу