2
我有一個將要執行涉及這樣一些計算一些複雜的動作類:是否有可能使一個類包私人用於測試目的
public class ComplexAction {
public void someAction(String parameter){
ComplexActionEvaluator evaluator = new ComplexActionEvaluator();
int value = evaluator.eval(parameter);
//some other actions
}
static class ComplexActionEvaluator implements Evaluator{
public int eval(String parameter){
//evaluation
}
}
}
//package-private, uses only for Actions
interface Evaluator{
int eval(String parameter);
}
由於評價者可能包含一些複雜的邏輯,我我想爲它寫測試。但由於ComplexActionEvaluator
是特定於ComplexAction
我會私下做,而不是封裝私人。但是這會讓它無法進行測試。
我首先想到的是讓它默認訪問。但是默認訪問只是爲了讓測試可用。
我認爲,如果決定使用哪個訪問修飾符會受到測試的偏見,那就不太好了。也許我做錯了什麼或者這是常見做法?
其實,「如果你不能用Java解決它,用JavaDocs來完成」這種工作,但在我看來就像是一種解決方法。但我認爲這種情況下,將'ComplexActionEvaluator'放入'ComplexAction'中是自我記錄的... – user3663882
實際上,我認爲它是兩方面的:一方面,它是一種解決方法 - 解決某些問題沒有更好的解決方案。另一方面:擁有適當的javadoc本身就是一件好事;從這個意義上說:人們可以使用已經存在的東西。 – GhostCat