我提到了这个答案,我该如何模拟java。时间本地日期。now()关于如何模拟我的LocalDateTime。now()调用。我基本上遵循了所有步骤,但只使用了LocalDateTime而不是LocalDate。
我的代码的功能是这样的,它应该只在一小时的第15或45分钟运行。因此,我将LOCAL\u DATE\u TIME静态变量设置为:
私有final staticLocalDateTimeLOCAL_DATE_TIME=LocalDateTime.of(2019,10,15,19,15,22);
然后在我的@Before测试方法中,我有以下内容:
@Mock
private Clock clock;
private Clock fixedClock;
private final static LocalDateTime LOCAL_DATE_TIME = LocalDateTime.of(2019,10,15,19,15,22);
这是2019-10-15T19:15:22。
@Before
public void before(){
fixedClock = Clock.fixed(LOCAL_DATE_TIME.toLocalDate().atStartOfDay(ZoneId.systemDefault()).toInstant(), ZoneId.systemDefault());
doReturn(fixedClock.instant()).when(clock).instant();
doReturn(fixedClock.getZone()).when(clock).getZone();
}
这是我正在测试的代码
@Override
public void punctuate(long l) {
LocalDateTime localDateTime = LocalDateTime.now(clock);
int currentMinute = localDateTime.getMinute();
if(currentMinute == 15 || currentMinute == 45) { ....
当我在上面的第一行放置断点时,我看到localDateTime设置为2019-10-15T00:00
所以看起来日期被嘲笑得很好,但是我不能嘲笑时间。我该怎么做才能嘲笑分钟值呢?
转换为本地日期将删除您的本地日期时间的时间部分,所以不要这样做。
如下初始化固定时钟:
fixedClock = Clock.fixed(
LOCAL_DATE_TIME.atZone(ZoneId.systemDefault()).toInstant(),
ZoneId.systemDefault()
);
由于各种原因,我的单元测试环境无法访问启动ignite所需的环境。我不需要ignite来启动测试,我希望代码忽略对ignite的调用。开始()。我该怎么做? 我尝试过模拟点火,但当我尝试模拟start()方法时,它会抛出一个错误。 这会导致以下错误: 组织。莫基托。例外情况。误用。MissingMethodInvocationException:when()需要的参数必须是“模拟的方法调用”。例如
问题内容: 我在带有打字稿的React Router v5.1.2中使用UseHistory挂钩吗?运行单元测试时,我遇到了问题。 TypeError:无法读取未定义的属性“ history”。 我也尝试使用,但仍然无法正常工作。 问题答案: 浅化使用的反应功能组件时,我需要相同的内容。 在我的测试文件中解决了以下模拟问题:
运行jUnit时的异常 我想测试这个类,下面是测试方法 运行junit会产生以下异常
以下是日志供参考: IllegalStateException:无法转换名为com.xyz.TestLoad的类。原因:java.io.ioException:无效常量类型:在org.powermock.core.classloader.mockClassLoader.loadModifiedClass(MockClassLoader.java:180)在org.powermock.core.cl
当我试图模仿javax.ws.rs.core 时,我得到一条错误消息: 无法创建JAX-RS运行时委托 为什么会发生这种情况? 但是,当我试图嘲笑HttpServlet响应时,这是没有问题的!
我想在我的发票类中存根methot generateFerenceNumber():