Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.3k views
in Technique[技术] by (71.8m points)

junit - Mockito/Spring: mock only one function from Autowired Service

i want mock only one function on a real service, this is Injected via @Autowired (Integration Test) ->

@SpringBootTest(classes = OrderitBackendApp.class)
@ExtendWith(MockitoExtension.class)
@AutoConfigureMockMvc
@WithUserDetails
public class OrderResourceIT {

    @Autowired
    private OrderRepository orderRepository;
    
    ...mor Injections and Tests

Here the mock functionalty ->

    @BeforeEach
    public void initTest() {
        MockitoAnnotations.initMocks(this);
        order = createEntity(em);
        OrderService spy = spy(orderService);
        when(spy.priceIsIncorrect(any())).thenReturn(false);
    }

But this and a few other things that i tried didnt work. What is the right way to do it ?

question from:https://stackoverflow.com/questions/65887972/mockito-spring-mock-only-one-function-from-autowired-service

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Try using @InjectMocks and @Mock annotations if you are using Mockito. Look at the example below https://www.springboottutorial.com/spring-boot-unit-testing-and-mocking-with-mockito-and-junit


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...