Java:从jUnit-Test调用主要实现的接口方法



我有以下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;
}
});
}

问题:当函数要求接口作为参数时,当接口方法在main中实现时,我如何从jUnit - test测试public static String s(B b)-函数?

该类称为A,接口:B

当您想要测试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);
}

最新更新