【发布时间】:2016-03-09 12:56:55
【问题描述】:
假设我有这样的方法
public void scheduleCleanup(String parameter) {
final SomeObject someObject = new SomeObject(parameter);
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.schedule((Runnable) () -> cleanupService.startCleanup(someObject),
CLEANUP_TIMEOUT_SEC, TimeUnit.SECONDS);
}
这意味着cleanupService.startCleanup(someObject) 在CLEANUP_TIMEOUT_SEC 之后被调用,这实际上来自一些属性文件。
对我来说很清楚我可以创建SomeObject 并为cleanupService.startCleanup(someObject) 编写单元测试,但是我如何使用scheduleCleanup 方法呢?
- 我认为我需要模拟它,但在这种情况下你是怎么做的呢?
- 是否可以避免模拟,在这种情况下最好的方法是什么?
【问题讨论】:
标签: java unit-testing junit mocking