Pergunta

As minhas Ligações de aplicativos para DB e recebe árvore de categorias daqui. Em regime de depuração eu posso ver este objeto árvore grande e eu só pensava em capacidade de salvar este objeto em algum lugar no disco para uso em topos de teste. Como esta:

mockedDao = mock(MyDao.class);
when(mockedDao.getCategoryTree()).thenReturn(mySavedObject);

Assumindo mySavedObject - é grande o suficiente, então eu não quero gerá-lo manualmente ou escrever código especial geração. Eu só quero ser capaz de serialize e salvá-lo em algum lugar durante a sessão de depuração, em seguida, desserializar-lo e passar para thenReturn em testes. É que há uma maneira padrão para fazer isso? Se não como é melhor para implementar tal abordagem?

Foi útil?

Solução

I não ame a sua ideia, é incrível!

Eu não estou ciente de uma biblioteca que iria oferecer essa funcionalidade fora da caixa. Você pode tentar usar ObjectOutoutStream e ObjectInputStream (ou seja, a serialização Java padrão) se os objetos todos implementar Seriablizable. Normalmente eles não. Nesse caso, você pode ter mais sorte usando XStream ou um de seus amigos.

Outras dicas

Nós geralmente zombar todo o DB é tais cenários, reutilização (e implicitamente teste) o código para carregar as categorias do DB.

Especificamente, os nossos testes de unidade executar contra um banco de dados in-memory ( hsqldb ) , que inicializar antes de cada teste, importando dados de teste.

Tem olhada Beans dinâmico Managed - Isto oferece uma maneira de alterar valores de uma corrida aplicativo java. Talvez haja uma maneira de definir um MBean que mantém sua árvore, leia a árvore, armazená-lo em algum lugar e injetá-lo novamente mais tarde.

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