インコグニート:
私は次のことを持っています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);
}