当前位置: 首页 > 面试题库 >

时间相关的单元测试

弓宏茂
2023-03-14
问题内容

我需要测试一个函数,该函数的结果将取决于当前时间(使用Joda time的时间isBeforeNow())。

public boolean isAvailable() {
    return (this.someDate.isBeforeNow());
}

是否可以使用(例如使用Mockito)存根/模拟系统时间,以便我可以可靠地测试该功能?


问题答案:

Joda
time支持通过类的setCurrentMillisFixedsetCurrentMillisOffset方法设置“假”当前时间DateTimeUtils

参见https://www.joda.org/joda-
time/apidocs/org/joda/time/DateTimeUtils.html



 类似资料:
  • 我的类有一个方法,它尝试执行一些操作,并在所有操作完成后返回nano时间。当测试这个方法时,我遇到了一个问题,测试结果总是不同的(因为取决于当前时间)。 如何正确测试返回值?没有PowerMock有办法吗? 示例类: 示例测试: 感谢您的回答!

  • 有人能帮我理解testProguardFile的用法吗。假设我在gradle build文件中有调试buildType及其配置如下: 那么为什么我要提供另一个名为test-proguard-rules的proguard规则文件呢。专业测试?如果我理解正确,当我进行仪器测试时,会生成一个单独的apk,但是如果我只进行单元测试,情况是否也是这样? 我希望能够运行“单元测试”(不是仪器测试),但让单元测

  • 我启动了一个项目,现在项目中有大约7个测试,使用执行整个测试套件已经花费了一分钟多的时间。 从附加输出(标志)中,我可以看到,对于每个测试类和方法,整个quarkus应用程序以及mongodb实例等依赖项都会重新启动。 这与quarkus文档在测试指南页面上的内容完全相反: 到目前为止,在我们的所有示例中,我们只为所有测试启动Quarkus一次。在运行第一个测试之前,Quarkus将启动,然后所有

  • 问题内容: 我有一种方法,根据从当前日期开始,该方法对从数据库中获取的数据实施不同的逻辑。 我想通过单元测试创​​建对象来测试它,将它们保存在数据库中并调用被测试的方法。但是,为了获得可预测的结果,我每次都需要更改系统日期,而且我不知道如何在Java中执行此操作。 有什么建议吗? 问题答案: 您可以使用当前日期生成预期结果。 或者您编写系统以使用您在测试时提供的日期/时间(而不是时钟),这样,时间

  • 我的Android项目中的数据类模型有一个变量lets,称之为value。 数据类Person(名称:String=“”,值:Int=0){} 我希望Int类型的变量值随时间减少。假设它每天减少1。所以如果今天是10,明天是9,后天是8等等,即使我的应用程序“死了”/没有打开。我该如何去实现这一点呢?

  • 我的问题也与在典型的BDD中谁做什么有关。我的理解是,产品负责人提出用户故事(可能在Gherkin中,也可能不在Gherkin中),QA编写端到端测试的场景(在特性文件中),Dev编写他的代码(如何和在哪里,他是否也遵循BDD?)。在这一点上,如果开发人员编写了自动化单元测试,那么这是否可以被端到端的QA所利用,或者它们可以完全不同? 我的问题是开发人员和QA在遵循BDD的同时如何在编码方面利用彼