2

2 つのクラスがCalculator1あり、src フォルダーの下Calculator2にあるパッケージに含まれています。com.zzy.junit.usermyeclipse を使用して 2 つのテスト クラスを作成し、それぞれをテストします。その中の 1 つのテスト クラスを実行すると、Junit4 はどのクラスがテストされているかをどのように認識しますか?

クラス1

package com.zzy.junit.user;

public class Calculator1 {

    private int a;
    private int b;

    public Calculator1(int a,int b)
    {
        this.a = a;
        this.b = b;
    }

    public int add()
    {
        return a+b;
    }
}

クラス2

package com.zzy.junit.user;

public class Calculator2{

    public int divide(int a,int b)
    {
        return a/b;
    }
}

また、次の 2 つのテスト クラスがあります。どちらも test という src フォルダーにあります。

テスト クラス 1

package com.zzy.junit.user;

import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;  

import org.junit.Test;

public class TestCalculator1 {

    @Test
    public void testAdd() {
        Calculator1 s = new Calculator1(3,6);
        int z = s.add();
        assertThat(z,is(9));
    }

}

テスト クラス 2

package com.zzy.junit.user;

import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;

import org.junit.Test;

public class TestCalculator2 {

    @Test
    public void testDivide() {
        TestCalculator2 t = new TestCalculator2();
        int z = t.divide(4, 2);
        assertThat(z,is(2));
    }

}

という名前のテスト クラスを実行するかどうかを知りたいのですがTestCalculator2、Junit4 はCalculator1クラスをテストする必要があることをどのように認識しますか。テストクラスの名前に関連していますか?

4

3 に答える 3

3

JUnit は、合格または不合格のテストを実行するためのフレームワークです。通常、1 つのテストが 1 つのクラスに焦点を当てるという事実は、ほとんどの Java プログラマーが観察する規則です。JUnit4 は、どのクラスがテストされている@Testを認識せず、 で注釈が付けられたすべてのメソッドを実行するだけです。

于 2012-12-08T08:26:09.790 に答える
0

(以前) 投稿されたテスト コードに基づいて、 のtestAddメソッドは のメソッドをTestCaculator1テストしており、 のメソッドは のメソッドをテストしています。addStudenttestDivideTestCaculator1divideTeacher

最後の編集により、テスト クラスの名前は、テストされたクラスの名前とより密接に一致するようになりました。

別の回答で述べたように、テストクラスが特定のクラスのテスト専用であるという実際の要件はありませんが、人々は慣例により1対1の関係を確立する傾向があります。

実際の接続はメソッド レベルにあり、テスト メソッドが実際に実行するクラスによって完全に決定されます。

于 2012-12-12T10:43:26.653 に答える
0

通常、名前が「Test」で終わるか、@Test アノテーションが付いているためです。

于 2012-12-09T13:13:52.330 に答える