Насмешивание внедренного объекта в методе return и методе UnsupportedOperationException - PullRequest
0 голосов
/ 11 апреля 2019

У меня есть класс, который возвращает внедренный объект, используя Mockito.Каждый раз, когда я проверяю это, он возвращает быка.Как бы я правильно протестировал его, чтобы вернуть правильный объект?

Мой класс для тестирования:

@Component
 public class CarImpl {
    @Inject
     private Engine v6EngineImpl;

    public Engine getEngine() {
        return v6EngineImpl;
}

public Exhaust getExhaust() {
         throw new UnsupportedOperationException("unsupported");
     }
}

Тесты:

@RunWith(MockitoJUnitRunner.class)
 public class CarTest {
    @InjectMocks
     private CarImpl carImpl;

@Mock
private Engine v6EngineImpl;

     @Test
     public void testGetEngine(){
       Engine v6EngineImpl = mock(V6EngineImpl.class);
       Engine engine = carImpl.getEngine();

      // always returns a bull no matter what, how to mock inject. 
      //return object correctly? 
      Assert.assertNotNull(engine);
   }

    @Test
     public void testGetExhaust() {
         // how to test thrown exception? 
     }
}

Спасибо, я не слишком знакомспасибо

1 Ответ

1 голос
/ 15 апреля 2019

Попробуйте это:

@RunWith(MockitoJUnitRunner.class)
 public class CarTest {

 @InjectMocks
 private CarImpl carImpl;

 @Mock
 private Engine v6EngineImpl;

     @Test
     public void testGetEngine(){
      Engine engine = carImpl.getEngine();

      //engine is the mock injected to CarImpl
      Assert.assertNotNull(engine);
      Assert.assertSame(engine,v6EngineImpl);
   }

    @Test(expected=UnsupportedOperationException.class)
     public void testGetExhaust() {
          carImpl.getExhaust();
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...