어떻게 봄 부팅에서 옵션 콩을 조롱하는?

shankulk :

내에서 SpringBootApplication, 나는이 bean(아래 그림처럼)하는 주입한다 다른 옵션 콩을

@Service
public class A {

    //B is another @Component from one of the dependencies
    private Optional<B> b;
    ...
    ...
}

나는에 대한 통합 테스트 쓰고 있어요 class A내가 필요 어디 @MockBean Optional<B> b. 때문에 Optional최종 클래스는, 스프링 mockito는 다음과 같은 오류가 발생합니다

수 모의하지 / 스파이 클래스 java.util.Optional - final 클래스

이 주위에 방법이 있나요? 어떤 도움을 많이 감사합니다.

리노 :

당신은 사용할 수 있습니다 Optional.of(b).

당신이 주석으로 mockito를 사용하는 경우, 당신은 사용할 수 없습니다 @InjectMocks당신의 선택은 mockito 알려져되지 않기 때문에. 당신은 당신의 서비스를 만들 필요가 A자신을. 이 같은:

@RunWith(MockitoJUnitRunner.class)
public class ATest {
    @Mock
    private B b;

    private A a;

    @Before
    public void setup() {
        a = new A(Optional.of(b));
    }
}

추천

출처http://10.200.1.11:23101/article/api/json?id=8322&siteId=1