Java: Llamada en los principales métodos de interfaz implementadas desde un jUnit - Prueba

Incognito:

Tengo el siguiente 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;
    }

Que toma en B - Interface

La Interfaz B- Métodos int t() and boolean f(int a, int b)se llevaron a cabo en la misma clase dentro maincomo la siguiente:

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;
            }
        });
    }

Problema : ¿Cómo puedo comprobar la public static String s(B b)- Función de una jUnit - testcuando la función pide una interfaz como parámetro, cuando los métodos de interfaz se llevaron a cabo en main?

La clase se llama A, Interfaz:B

progman:

Cuando se quiere poner a prueba su s()método puede proporcionar cualquier referencia a un objeto que implementa la Binterfaz. Se puede definir una clase anónima que implementa la interfaz como lo hizo en su main()método. O puede definir una clase "normal", que implementa la interfaz también. Por lo tanto se puede escribir algo como esto:

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

A continuación, se utiliza esta clase como cualquier otra clase dentro de su unidad de prueba:

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

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=343308&siteId=1
Recomendado
Clasificación