我有以下代码。
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
的映射起作用。为什么不调用模拟版本?
由于设置[设置时间和断言时,createSingleLoan
取不同的对象
when(singleLoanService.createSingleLoan(any())).thenReturn(fake_id);