1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xiai_fei-beanmock

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

BeanMock

Расширение Mockito для имитации глубоких полей.

Сценарии использования

Mockito — это популярный инструмент для модульного тестирования в Java. Однако в сценарии, где classA вызывает classB, который вызывает classC, и нужно протестировать classA, возвращая разные результаты для методов classC без имитации classB, есть два основных решения:

  1. Использовать многоуровневые вызовы с помощью отражения (но это может быть громоздко для более глубоких вызовов, и необходимо вручную восстанавливать контекст, чтобы не загрязнять другие тесты, поскольку контекст Spring является глобальным, если только не используется DirtesContext).

  2. Перейти на использование PowerMock.

Для улучшения поддержки таких высокочастотных сценариев было разработано расширение для Mockito и Spring Test, которое поддерживает аннотированное вложение объектов для имитации.

Использование

@RunWith(SpringBeanMockTestClassRunner.class)  //  Использование расширения SpringJUnit4ClassRunner Runner
@ContextConfiguration(locations = "classpath:applicationContext.xml")
public class LoginServiceTest {

    @MockBean("userService") // Пометка текущего свойства как целевого bean, который должен быть введен (то есть userService имеет свойство configurationService, которое вводится через Spring)
    private ConfigurationService configurationService;

    @Resource private LoginService loginService;

    @Test
    public void test(){
        Mockito.when(configurationService.userCache()).thenReturn(true);  
        User user = loginService.login();
        assertEquals("cache",user.getSource());
    }

    @Test
    public void testFromDb(){
        User user = loginService.login();
        assertEquals("db",user.getSource());
    }
}

В коде представлен полный пример для запуска. Поскольку связанного кода немного, он не упакован в jar-файл, а предоставляется напрямую в виде исходного кода, который можно использовать, просто ссылаясь на него.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Мок-расширение Mockito используется для мокинга глубоких полей. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xiai_fei-beanmock.git
git@api.gitlife.ru:oschina-mirror/xiai_fei-beanmock.git
oschina-mirror
xiai_fei-beanmock
xiai_fei-beanmock
master