如果该类不是为继承而设计的,那么我们团队中的大多数类都被标记为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()
时需要嘲笑它。