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