Pregunta

Tengo una implementación personalizada de la interfaz de Mapa que hace algunas complicaciones, como el perezoso evaluación de las funciones.la aplicación debe aparecer inmutable después de la construcción desde el exterior (por ejemplo,sin put() y putAll() métodos son compatibles)

Me parece que funciona en la mayoría de las condiciones básicas.Ya que es bastante complejo, estoy seguro que no debe ser de toneladas de acechando errores w.r.t el hilo de seguridad, irregular orden de las operaciones y mucho más..

Dado que el contrato de la interfaz de Mapa está bien definido estoy seguro que no debe existir un test genérico de la colección de la cual se verifica la esquina de los casos, el hilo de seguridad, etc.

He oído que Google Colecciones corre alrededor de 25000 unidad de pruebas para su biblioteca.Es posible descargar de algún sitio?

¿Fue útil?

Solución

El Google Colecciones zip contiene sus pruebas.Debe haber un google-recoger-testfw frasco de allí.

Específicamente, hay un resumen de la prueba para el contrato general de Mapa.

Otros consejos

Es posible que desee ver si Google Colecciones tiene algo que satisfaga sus necesidades por lo que no tiene que soportar su propio mapa. Véase, por ejemplo, Map Maker

private Map<Key, Graph> createMap() {
  ConcurrentMap<Key, Graph> graphs = new MapMaker()
     .concurrencyLevel(32)
     .softKeys()
     .weakValues()
     .expiration(30, TimeUnit.MINUTES)
     .makeComputingMap(
        new Function<Key, Graph>() {
          public Graph apply(Key key) {
            return createExpensiveGraph(key);
          }
        });
  return Collections.unmodifiableMap(graphs);
}

Tenga en cuenta que el mapa no aparecerá completamente inmutable después de la construcción, ya que haciendo un map.get(key) con una clave previamente no vista va a cambiar lo que se ve por Map.entrySet()

Si tiene que escribir una implementación personalizada Mapa y quieren buen punto de partida para sus pruebas, sugerencias sobre el uso de Google Colecciones MapInterfaceTest es una buena.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top