如何测试匿名类?

Pab*_*dez 3 unit-testing idioms coupling

我相信你必须熟悉这个成语,这是java的闭包借口

//In the "Resource Manager" class
public void process(Command cmd){
  //Initialize
  ExpensiveResource resource = new ExpensiveResource();
  //Use
  cmd.execute(resource);
  //Release / Close
  resource.close();
}

//In the Client class...
manager.process(new Command(){

  public void execute(ExpensiveResource res){
    //Do things with the resource
  }
});
Run Code Online (Sandbox Code Playgroud)

我经常使用这个成语/模式,但最近我试着测试它,这让我头疼...

如何隔离测试ResourceManager和Client类?我发现这种情况非常严重,以至于你无法轻易做到这一点.

赞赏的想法.

问候

Jan*_*usz 5

我认为匿名类应该是如此小而简单,以至于测试包含/使用它们的结构应该足够好.

如果你有一些如此复杂,重要,重要的东西,你觉得需要测试它,使它成为一个完整的课程.