我有一个包含 Bill 生成的方法的类。我有一个 DateUtil 组件来创建日期
public Bill generateBill(List<ProvidedItem> providedItems) {
Bill bill = new Bill();
Date date = dateUtil.now();
bill.setStartDate(date);
bill.setEndDate(dateUtil.plusDays(date, ConstantValues.DEFAULT_DURATION_BILL_DAYS));
return billDao.saveOrUpdate(bill);
}
我已经测试了生成账单的方法
@Test
public void generateBill_shouldCorrectlyGenerateBill() {
Bill actualBill = billService.generateBill(actualProvidedItems);
Date date = dateUtil.now();
Bill expectedBill = BillMother.createTestInstanceWithAmount(sumProvidedItems, date, dateUtil.plusDays(date,
ConstantValues.DEFAULT_DURATION_BILL_DAYS));
Assert.assertThat(actualBill, is(expectedBill));
}
比尔妈妈:
public static Bill createTestInstanceWithAmount(BigDecimal totalAmount, Date startDate, Date endDate) {
Bill bill = new Bill();
bill.setStartDate(startDate);
bill.setEndDate(endDate);
bill.setTotalAmount(totalAmount);
return bill;
}
我有不同的对象,因为日期是在另一个时间调用的。
我不能在 Equals 方法中跳过这些日期,因为它们是该对象最重要的部分之一
如何让它在这种情况下正常工作?
最佳答案
使用 Mockito:
@Mock DateUtil dateUtil
when(dateUtil.now()).thenReturn(NOW);
关于java - 测试包含日期字段的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59140387/