/ / Teste de unidade com pasta de trabalho do Excel - c #, excel, teste de unidade

Teste de unidade com pasta de trabalho do Excel - c #, excel, teste de unidade

Estou começando a entrar em testes de unidade mais. Tenho um projeto em que o Excel é o "mecanismo" e não pode ser retirado (no momento). Preciso fornecer à pasta de trabalho várias entradas, executar uma macro na pasta de trabalho e coletar os resultados. uma enorme pasta de trabalho desagradável, portanto, tirar qualquer coisa dela não é uma opção no momento.

Dado que a principal dependência é o Excel. Entre objetos, como faço para configurar testes de unidade em que quase todo o código está atingindo o Excel?

Respostas:

3 para resposta № 1

Em teoria, "testes de unidade" devem testar o mínimo possível, com o maior número possível de dependências zombadas. Com o Excel, isso pode ser muito complicado, se não impossível.

Idealmente, eu pensaria que os testes seriam:

  • Teste de unidade da lógica do aplicativo, abstraindo o Excelfornecendo um "mock" (mais fácil dizer do que fazer) que procura entradas específicas e fornece saídas codificadas. A idéia básica é "Minhas entradas são válidas" e "retornei todas as saídas necessárias"
  • Teste de unidade sua macro do Excel no Excel, fornecendo entradas codificadas e verificando as saídas.

Isso remove a interoperabilidade da imagem e permite que você teste essas peças separadamente.

Juntar tudo é mais um teste de integração (que normalmente não são automatizados) que um teste de unidade.


0 para resposta № 2

Isso vai ser difícil. Uma maneira de começar é adicionar outro nível de abstração. Crie um invólucro em torno da dependência do Excel e zombe dele.

Parece que isso não compraria muito no seu caso, já que você diz que é realmente desagradável. Parece que você precisa refatorar bastante.