#java #spring-boot #junit #spring-test
Вопрос:
Я создал своего рода шаблон обработчика, который дает мне конкретные типы обработчиков на основе входного параметра. Автопроводка находится на уровне конструктора, который заполняет контейнер(хэш-карту) соответствующими компонентами стратегии. Вот код. Как я могу утверждать это с помощью Junit?
NOTE: Strategy is an interface and those are used by impl class. @Component public class StrategyHandler { private Maplt;String, Strategygt; responses; @Autowired public StrategyHandler(Setlt;Strategygt; responseSet) { responses = new HashMaplt;gt;(); responseSet.forEach(strategy -gt; responses.put(strategy.getName(), strategy)); } public Strategy getStrategy(String name) { return responses.get(name); } }
Комментарии:
1. Что вы хотите проверить? Внедрение зависимости или дополнительной логики в ваш конструктор?
Ответ №1:
Исправлена ошибка. Вот код:
RunWith(MockitoJUnitRunner.class) public class StrategyHandlerTest { private Setlt;Strategygt; responses = new HashSetlt;gt;(); @InjectMocks @Spy private TestClass testThis; private StrategyHandler handler; @Before public void init() { MockitoAnnotations.initMocks(this); } @Test public void testGetStrategy() { responses.add(testThis); handler = new StrategyHandler(responses); Strategy strategy = handler.getStrategy("HELLO1"); Assert.assertNotNull(strategy); } } class TestClassPlanningKnockout extends PlanningKnockout {}
Комментарии:
1. Мы могли бы помочь вам и предоставить вам ответ раньше, если бы вы ответили на вопрос, который я добавил.