Pergunta

Eu tenho uma implementação personalizada da interface do Mapa que faz algumas coisas extravagantes, como avaliação preguiçosa de funções. a implementação deve aparecer imutável após a construção a partir do exterior (por exemplo, não coloque () e putAll () métodos são suportados)

I parece que ele funciona em condições mais básicas. Uma vez que é bastante complexo, eu tenho certeza que deve haver toneladas de espreita erros w.r.t segurança do segmento, a fim irregular das operações e muito mais ..

Uma vez que o contrato da interface do Mapa é bem definida Estou certo de que deve existir uma coleção teste genérico que verifica angulares casos, a segurança do thread etc.

Ouvi dizer que o Google Collections corre cerca de 25000 testes de unidade para a sua biblioteca. É possível baixá-los em algum lugar?

Foi útil?

Solução

O Google Collections zip contém seus testes. Deve haver um frasco google-collect-testfw lá.

Especificamente, há um teste abstrato para o contrato geral do Mapa. ??

Outras dicas

Você pode querer ver se Google Collections tem algo que atenda às suas necessidades assim você não tem que apoiar o seu próprio mapa. Veja, por exemplo, 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);
}

Note que o mapa não será exibido completamente imutável após a construção, uma vez fazendo um map.get(key) com uma chave previamente invisível vai mudar o que é visto por Map.entrySet()

Se você precisar escrever um personalizado implementação Mapa e quer bom lugar para começar para seus testes, sugestão de usar do Google Collections MapInterfaceTest é uma boa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top