0
为了使豆类可测试我通常使用以下模式:最佳实践
class SomeClass {
private Something field = null;
@PostConstruct
public void init() {
if (field == null)
field = someClass.someValue; //(this may throw an exception, that's why it's here)
}
//Notice: this is package local
void setField(Something value) {
field = value;
}
}
我经常使用这种模式,所以我有一个默认的行为和行为测试中使用。 someClass.someValue通常会像传统代码中的静态方法那样令人讨厌,或者引发异常或两者兼而有之。
有人认为这有点破解,但我没有看到任何坏东西。
使用此模式的缺点是什么?