ClassA
インスタンス化が難しいものに依存するこのJavaをテストする必要があるとしましょうClassB
:
public class ClassA
{
public ClassA()
{
String configFile = "config_file.xml";
// I have to pass configFile to instantiate ClassB.
// And for example if configFile does not exists in the testing machine?
// Wouldn't it be easier to have an empty constructor for classB to test ClassA?
ClassB classB = new ClassB(configFile);
}
// ...
}
ClassB
:
class ClassB
{
ClassB(String configFile)
{
// Set up configs.
}
// ...
}
classB
テスト目的でのみ内部に空のコンストラクターを作成するのは悪い習慣ですか? それとも、そのために簡略化されたモックを書き直したほうがよいのClassB
でしょうか?