在我的代码中,我有这样的东西:
private void doSomething() {
Calendar today = Calendar.getInstance();
....
}
如何在junit测试中“模拟”它以返回特定日期?
就我所知,您有三个明智的选择:
Calendar
实例插入您当天设置的任何方法/类中。private void method(final Calendar cal) { Date today = cal.getTime(); }
Calendar
。这不是一个选择,而是一个建议,因为JodaTime将使您的生活更加轻松。您仍然需要将此时间注入该方法中。DateTime dt = new DateTime();
Date jdkDate = dt.toDate();
Calendar
在一些界面中,可以让您获取时间。然后,您只需模拟该接口并使其返回常量即可Date
。Date today = calendarInterfaceInstance.getCurrentDate()
CacheController.Somemethod();但是当submit方法被称为submit方法时,它会创建一个线程和cacheController.somemethod();从不调用测试类。
当我运行测试时,我可以做什么来更改时间
null 我看过其他几个类似的问题,但没有一个有帮助: 模拟包含对SQLiteOpenHelper引用的类时出错 使用mockito库在java中模拟最终类-我在导入PowerMock时遇到了很多问题 如何用mockito模拟最后一个类-我已经添加了依赖项,并用行创建了文件,正如答案中所建议的那样,我仍然得到同样的错误。我还尝试了建议的答案,但这给了我一个‘没有足够的信息来推断类型变量t'erro
我的要求是测试这段代码,更重要的是测试序列化器,因此,给出一个JSON片段,我如何测试所有的值都正确地通过商人的实例。 我不知道RestTemplate使用哪个序列化器将JSON序列化为对象。
我试图使用下面的代码模拟方法,但我得到了异常,而且我是单元测试的新手
我知道Dan North设计BDD的意图之一是将词汇表从复杂的测试域中移开。然而,在实现由外到内的方法时,我们似乎仍然需要对模仿行为(或者,如果您愿意的话)有一些了解。North在这个视频中建议,如果我从最外层的域对象开始,然后向内工作,我会在发现合作者时模仿它们,然后用适当的实现替换它们。所以最后,我以一组端到端测试结束。 Martin Fowler在这篇博客文章中定义了TDD的两个阵营:“古典