Question

J'ai une implémentation personnalisée de l'interface de la carte qui fait des trucs de fantaisie, comme l'évaluation paresseuse des fonctions. la mise en œuvre doit apparaître immuable après la construction de l'extérieur (par exemple aucune méthode put () et putAll () sont pris en charge)

Je il semble que cela fonctionne dans les conditions les plus élémentaires. Comme il est assez complexe, je suis sûr qu'il doit y avoir des tonnes de bugs qui se cache w.r.t fil de sécurité, l'ordre irrégulier d'opérations et bien plus encore ..

Étant donné que le contrat de l'interface de la carte est je suis sûr qu'il ya bien défini doit exister une collection de test générique qui vérifie coin-cas, fil de sécurité, etc.

Je l'ai entendu dire que Google Collections gère environ 25 000 tests unitaires pour leur bibliothèque. Est-il possible de les télécharger quelque part?

Était-ce utile?

La solution

Le zip Google Collections contient leurs tests. Il devrait y avoir un pot google-collect-testfw là-dedans.

Autres conseils

Vous pouvez voir si Collections Google a quelque chose qui répond à vos besoins de sorte que vous n'avez pas à soutenir votre propre carte. Voir, par exemple, MapMaker

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

Notez que la carte n'apparaîtra complètement immuable après la construction, car ce faisant, une avec une clé map.get(key) précédemment invisible va changer ce qui est vu par Map.entrySet()

Si vous devez écrire une implémentation carte personnalisée et que vous voulez un bon endroit pour commencer vos tests, la suggestion d'Adam d'utiliser Google Collections MapInterfaceTest est bonne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top