ジャワ:JUnitのからの主な実装インタフェースメソッドで呼び出し - テスト

インコグニート:

私は次のことを持っていますfunction

public static String s(B b) {
        int t = b.t();
        String r ="Hello ";
        for(String z:s) {
            boolean x=b.f(t,5);
            if(x) {
                r+=z;
            }
        }
        return r;
    }

ここで取り B - Interface

インタフェースB-方法はint t() and boolean f(int a, int b)内の同じクラスに実装されたmain以下のように:

public static void main(String[] args) {
        A.s(new B() {                            //A - Class
            @Override                            //B - Interface
            public int t() {
                return 15;
            }
            @Override
            public boolean f(int a, int b) {
                return true;
            }
        });
    }

問題:どのように私はテストすることができますpublic static String s(B b)- Aから機能をjUnit - testインターフェイスのメソッドを実装したところ関数は、パラメータとしてインターフェイスを要求したときにmain

クラスが呼び出されるAインタフェース:B

PROGMAN:

あなたがテストするときs()の方法をあなたが実装するオブジェクトへの参照を提供できるBインターフェースを。あなたは定義することができます匿名クラス、あなたの中で行ったようにインターフェイスを実装main()する方法。それとも、同様のインタフェースを実装し、「正常な」クラスを定義することができます。ですから、このような何かを書くことができます。

public class Whatever implements B
{
    /* your methods from B */
}

次に、あなたのユニットテスト内の他のクラスと同様に、このクラスを使用します。

@Test
public void checkSomething() {
    String result = A.s(new Whatever());
    Assertions.assertEquals("my string", result);
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=343305&siteId=1