Cómo crear aserciones JUnit4 personalizadas que no se muestran en el seguimiento de fallas

Como se mencionó en otra pregunta sobre el ruido de limpieza de las trazas de la pila, las clases de filtrado desde su IDE son probablemente la solución más fácil. De hecho, los rastros de la pila que ha mostrado en su pregunta ya están filtrados.

Si realmente quisiera hacer esto en código, podría agregar filtros a su clase de afirmación personalizada de la siguiente manera:

package newassertions;

import static org.junit.Assert.assertTrue;
import java.util.ArrayList;

public class MyAssertions {

    public static void myAssertTrue(boolean b) {
        try {
            assertTrue(b);
        } catch (AssertionError e) {
            filterStackTrace(e);
            throw e;
        }
    }

    private static void filterStackTrace(AssertionError error) {
        StackTraceElement[] stackTrace = error.getStackTrace();
        if (null != stackTrace) {
            ArrayList<StackTraceElement> filteredStackTrace = new ArrayList<StackTraceElement>();
            for (StackTraceElement e : stackTrace) {
                if (!"newassertions.MyAssertions".equals(e.getClassName())) {
                    filteredStackTrace.add(e);
                }
            }
            error.setStackTrace(filteredStackTrace.toArray(new StackTraceElement[0]));
        }
    }
}

El nombre de la clase adjunta 'newassertions.MyAssertions' (codificado) se filtra de la traza de la pila en este ejemplo. Obviamente, este mecanismo también funcionaría para filtrar el seguimiento de la pila de un AssertionError que usted mismo crea y no solo aquellos generados por otras afirmaciones.

Respuesta 1

He creado un juego de aplicaciones / applets de Java que debería guardar los niveles que el usuario puede crear en su máquina local. Digo applet / aplicación porque puede ejecutarse como una aplicación o como un applet ...

¿Por qué Hashmap usa internamente una LinkedList en lugar de una Arraylist cuando dos objetos se colocan en el mismo depósito en la tabla hash?

Tengo curiosidad, ya que he configurado pestañas Fragment en una FragmentActivity, cómo recargar un fragmento desde FragmentActivity o desde el Fragment mismo, para purgar y recargar esa pestaña. YO ...

Estoy usando GRPC-Java 1.1.2. En una sesión activa de GRPC, tengo algunas secuencias bidireccionales abiertas. ¿Hay alguna forma de limpiarlos del cliente cuando el cliente se está desconectando? Cuando trato de ...