Powermock does not create mock for java.time.ZonedDateTime

前端 未结 2 521
无人及你
无人及你 2020-12-12 05:51

I tried to create mock for java.time.ZonedDateTime using PowerMockito and I was expecting the mock object for ZonedDateTime. Instead, actual object is getting created and he

2条回答
  •  温柔的废话
    2020-12-12 06:04

    Create a method in your class like

    public class SomeClass{
    
    public static void main(String[] args) {
        LocalDateTime now = getCurrentLocalDateTime(); 
        System.out.println(now);
    }
    
    private LocalDateTime getCurrentLocalDateTime() {
        return LocalDateTime.now();
    }
    

    }

    And in the Test Class you use

    @PrepareForTest(SomeClass.class)
    
    @RunWith(PowerMockRunner.class)
    

    In TestCase

    LocalDateTime tommorow= LocalDateTime.now().plusDays(1);
    
    SomeClass classUnderTest = PowerMockito.spy(new SomeClass());
    
    PowerMockito.when(classUnderTest, "getCurrentLocalDateTime").thenReturn(tommorow);
    

提交回复
热议问题