如何 Mock/Assign Java 单元测试中的 LocalDate 变量
How to Mock/Assign LocalDate variable in Unit Test in Java
我有一个 LocalDate
变量,它是从配置属性中填充的。我需要对使用此变量的方法进行测试。但它会抛出错误 LocalDate cannot be mocked.
我浏览了 Stack Overflow 和其他网站上的各种文章,但到处都在谈论 DateTimeProviders
无法使用,因为我正在为客户维护现有项目。现在,问题是我需要知道如何将 Mock 分配给 Test
中 class 内的变量 endDate
我的Class
public class MyClass implements MyClassService{
@Value("#{T(java.time.LocalDate).parse('${configuration.entityconfig.end_date}')}")
private LocalDate endDate;
@Autowired
public WpLateDepartureObligationServiceImpl(....){
//some things
}
public void createApplications(MyEntitity myEntity) {
if (myEntity.getExpiryDate.isBefore(endDate)){
return;
}
}
这是单元测试区的样子
@InjectMocks
private MyClass myClassService;
@Test
public void createApplicationTest() {
MyEntitity myEntity=new MyEntitity ();
myEntity.setId(1L);
myEntity.setExpiryDate(LocalDate.parse("2020-04-05"));
myClassService.createApplications(myEntity);
}
我真的不知道如何发送值。我试着嘲笑它,但它不起作用。有没有办法可以从方法 createApplicationTest
?
发送 endDate
我使用
解决了这个问题
ReflectionTestUtils.setField(myClassService,endDate,LocalDate.Now());
尽管我无法从配置中导入数据,但这有助于我将值发送到来自 test
class.
的变量
我有一个 LocalDate
变量,它是从配置属性中填充的。我需要对使用此变量的方法进行测试。但它会抛出错误 LocalDate cannot be mocked.
我浏览了 Stack Overflow 和其他网站上的各种文章,但到处都在谈论 DateTimeProviders
无法使用,因为我正在为客户维护现有项目。现在,问题是我需要知道如何将 Mock 分配给 Test
endDate
我的Class
public class MyClass implements MyClassService{
@Value("#{T(java.time.LocalDate).parse('${configuration.entityconfig.end_date}')}")
private LocalDate endDate;
@Autowired
public WpLateDepartureObligationServiceImpl(....){
//some things
}
public void createApplications(MyEntitity myEntity) {
if (myEntity.getExpiryDate.isBefore(endDate)){
return;
}
}
这是单元测试区的样子
@InjectMocks
private MyClass myClassService;
@Test
public void createApplicationTest() {
MyEntitity myEntity=new MyEntitity ();
myEntity.setId(1L);
myEntity.setExpiryDate(LocalDate.parse("2020-04-05"));
myClassService.createApplications(myEntity);
}
我真的不知道如何发送值。我试着嘲笑它,但它不起作用。有没有办法可以从方法 createApplicationTest
?
endDate
我使用
解决了这个问题 ReflectionTestUtils.setField(myClassService,endDate,LocalDate.Now());
尽管我无法从配置中导入数据,但这有助于我将值发送到来自 test
class.