Existe alguma estrutura para .NET para dados de teste populate? [fechadas]
Pergunta
Estou uso c # e para testes de unidade e integração testando normalmente eu preciso para preencher campos automaticamente com base em atributos.
Vamos dizer que vamos testar se podemos escrever e receber de volta os dados do usuário ao banco de dados.
- eu crio um campo objeto de usuário Preencher escrever usuário ao banco de dados
- Leia utilizador objeto de banco de dados
- Verifique campos, se o que eu escrevo é o mesmo que o que eu li
Existe alguma estrutura para o usuário preencher com dados de teste automaticamente e verifique se o objeto de dois são têm os mesmos valores?
O código de exemplo pode gostar deste
User user = new User();
AutoPopulator.Populate(user);
user.Save();
Solução
Dê uma olhada NBuilder . Ele permite que você crie objetos de teste com dados aleatórios, valores incrementando, e qualquer coisa que você provavelmente pode pensar. Tudo através de uma interface fluente agradável.
Outras dicas
Você pode achar que é relevante. Aqui está uma lista de algumas outras estruturas a partir de hoje:
Bem conhecido e respeitado:
- NBuilder
- AutoFixture
- AutoPoco
- Bogus - C # porto de faker.js com suporte localidade. Usado por ElasticSearch (NEST).
Pouco conhecido:
Unfamiliar:
- TestDataGenerator
- TestDataFactory (Descontinuado)
- TestData
- Any-.Net
Sim, existe. Eu encontrei esta sessão quando assistindo # 3 da série do Verão de NHibernate por Stephen Bohlen .
Sua empresa, a Microdesk , desenvolveu um utilitário que lhe permitirá salvar o estado de um banco de dados na construção instalação de ensaio, definir o estado do banco de dados no início de cada teste, e recuperar o estado original do banco de dados sobre a desconstrução suporte de ensaio.
Baixe o utilitário aqui: Microdesk.Utility.UnitTest
Para um tutorial sobre como usá-lo, assistir ao Verão de NHibernate sessão # 3 vídeo.
Fluent NHibernate tem uma característica que lhe dá tudo em sua lista de desejos, exceto a parte auto-população:
Link: http://wiki.fluentnhibernate.org/Persistence_specification_testing
No entanto, dado C # com contratos de código, não seria muito difícil de auto-magicamente criar objetos válidos se usando reflexão.