未调用模拟服务

问题描述 投票:0回答:1

我有以下代码。

SingleLoanDTO singleLoanDto;

@Mock
private SingleLoanService singleLoanService;

@Autowired
@InjectMocks
private LoanFacadeImpl loanFacadeImpl;

@Autowired
private MappingService mappingService;

setSingleLoanDto();
final long fake_id = 43252343;

然后我做一些模拟。

Mockito.when(
    singleLoanService.createSingleLoan(
        mappingService.mapTo(singleLoanDto, SingleLoan.class)
    )
).thenReturn(fake_id);

并且断言,它有效。

Assert.assertEquals(fake_id,
    singleLoanService.createSingleLoan(
        mappingService.mapTo(singleLoanDto, SingleLoan.class)
));

但是,该代码似乎没有调用模拟版本,而是真正的了。

java.lang.AssertionError: 
Expected :43252343
Actual   :0

mappingService的映射起作用。为什么不调用模拟版本?

java testing mocking mockito junit4
1个回答
0
投票

由于设置[设置时间和断言时,createSingleLoan取不同的对象

when(singleLoanService.createSingleLoan(any())).thenReturn(fake_id);
© www.soinside.com 2019 - 2024. All rights reserved.