将类标记为最终版本与易测试性?

时间:2016-04-22 16:32:31

标签: java unit-testing final

如果该类不是为继承而设计的,那么我们团队中的大多数类都被标记为final。我得到了它的一部分,但我如何测试这些类?我可以使用PowerMock,但也不鼓励这样做。

另一种选择是拥有一个API和实现,但这似乎对内部类来说太过分了。我只是想知道人们如何解决这个问题?

编辑:这是伪代码。

public final class ServiceDiscovery
{
  private final Environment env;

  public ServiceDiscovery(final Environment env)
 {
   this.env =env;
  }

public String getService()
 {
  //Processing logic
   String x = env.getEnvironment();
   // Process x
  return x;
  }  
}

public class Environment
{ 
  public String getEnvironment()
  {
    // Perform logic to get environment
    String env = callFunction();
    return env;
  }
}

如何在这里将Environment标记为final?在我测试ServiceDiscovery#getService()时需要嘲笑它。

0 个答案:

没有答案