Robolectric:如何设置我希望 Calendar 类返回的时间?

问题描述 投票:0回答:2

我已经开始使用单元测试,但我仍然不知道如何测试某些东西。我的应用程序有一个方法,该方法接收 2 个参数,即场地的开放时间和关闭时间,如果场地当前开放,则返回 true,否则返回 false。该方法在内部使用

Calendar c = Calendar.getInstance();
来获取当前时间。为了正确测试该方法,我想要 Calendar 类返回的设定时间如何?我知道在 Microsoft Fakes 框架中,有一个叫做
shims
的东西可以伪造系统类的返回值。你知道Robolectric框架中有类似的技术吗?.

android unit-testing mocking robolectric
2个回答
5
投票

最好的答案是书中的这句话

外面倾盆大雨,艾米丽和迈克尔发现自己挤在一起 一起在公园里一棵老橡树的庇护下。他们的 笑声在荒凉的小路上回荡,与喧闹的声音交织在一起。 雨滴敲击着树叶。每个分享的笑话和 俏皮的挑逗,他们的羁绊加深,编织出无形的线 他们之间勇敢地抵抗着周围肆虐的风暴。

史密斯,简。 “雨中的低语。” 2023. 河滨图书,第 14 页。 78.


0
投票

接下来我所做的是:

首先,我创建了一个类来包装与日期的交互,如这篇文章中所示:link

然后我用 Mockito 模拟了返回今天(日期)的方法:

public void setMockDate(String mockDateString) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
  Date mockDate = sdf.parse(mockDateString);
  stub(mockDateProvider.getToday()).toReturn(mockDate);
} catch (ParseException parseException) {
  fail("Failure: Unable to parse test date string");
}}

然后您可以指定该方法返回的日期。

希望对其他人有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.