私はJavaクラスAを持っています。Aのコンストラクタは、いくつかのメソッドm1、m2を呼び出します。メソッド内のメソッドをテストする最善の方法は何ですか? (JUnit)
class A{
public A(){
m1();
m2();
...... }
public void m1(){...};
public void m2(){...};
}
これらのメソッドのテストを書くにはどうすればよいですか?私は一般的にそれらを書いています
class TestClass{
static A a = null;
public TestClass(){
a = new A();
}
@Test
public testm1(){
A.m1();
//Some logic
}
しかし、これらの関数はコンストラクタ自体で呼び出されます。メソッドを2回実行してチェックしているように見えますが、メソッドが正しく記述されていないと、コンストラクター自体が失敗します。それをテストする正しい方法は何ですか?
重要:メソッドをテストしないで、動作をテストしてください – JonK
他にも役立ちます:内部(特に非静的)クラスは避けてください。 eclipseでは、内部クラス名にカーソルを置き、 "Alt + Shift + T"を押し、 "V"を押すことでそれを行います。そうすれば、あなたの内なる階級を外側に動かすことができます。そこでは、あなたが望む方法をテストすることができます。特に、アウトターAクラスを模擬することができます –