Exercício – Usar os dados de teste para expor os problemas de lógica em um aplicativo de console C#

Concluído

O MakeChange método é capaz de processar transações simuladas com êxito ao usar a testData matriz. No entanto, os problemas lógicos são expostos ao simular as transações usando um conjunto de dados maior de itens com preços aleatórios. Esse problema demonstra a importância de testar completamente seus aplicativos.

Especificação

Neste exercício de desafio, você precisa configurar as variáveis usadas para simular transações e verificar se o relatório de transações inclui as discrepâncias esperadas.

Os seguintes requisitos se aplicam às transações simuladas:

  • instruções de nível superior simulam transações usando custos de item gerados aleatoriamente.
  • Instruções de nível superior geram valores aleatórios para itemCost no intervalo 2 - 49.
  • as instruções de nível superior simulam 100 transações.

A saída da transação relatada deve incluir:

  • Um registro de 100 tentativas de transações.
  • Instâncias de uma mensagem informando: "Não foi possível fazer transação: InvalidOperationException: não há dinheiro suficiente fornecido para concluir a transação".
  • Instâncias de uma mensagem informando: “Não foi possível fazer a transação: InvalidOperationException: A gaveta do caixa não pode fazer a alteração para o valor em dinheiro fornecido”.
  • Uma discrepância entre os valores relatados e esperados da gaveta do caixa.

Verifique seu trabalho

Para validar que seu aplicativo produz os resultados esperados ao implementar os requisitos de simulação especificados, conclua as seguintes etapas:

  1. Verifique se a pasta ChallengeProject está aberta no Visual Studio Code.

  2. No modo de exibição EXPLORER, expanda as pastas ChallengeProject e Starter .

    A pasta Inicial contém o aplicativo de exemplo deste módulo de Projeto guiado.

  3. Abra o arquivo Program.cs no Editor do Visual Studio Code.

  4. Configure o ambiente de depuração e a configuração de inicialização.

  5. Configure o aplicativo para usar a testData matriz para as transações simuladas (useTestData = true).

  6. Execute o aplicativo em uma sessão de depuração.

  7. Verifique se os valores “relatados” e “esperados” da gaveta do caixa são iguais no relatório de transações gerado pelo aplicativo.

  8. Configure as variáveis de aplicativo para atender aos requisitos de simulação na seção Especificação .

  9. Execute o aplicativo em uma sessão de depuração.

  10. Verifique se seu aplicativo atinge os seguintes requisitos de saída:

    • O relatório de transações inclui um registro de 100 tentativas de transações.

    • O relatório de transações inclui uma discrepância entre os valores relatados e esperados da gaveta do caixa.

    • O relatório de transações inclui ocorrências das seguintes mensagens:

      Could not make transaction: InvalidOperationException: Not enough money provided to complete the transaction.
      
      Could not make transaction: InvalidOperationException: The till is unable to make change for the cash provided.
      

Depois de validar os resultados deste exercício, prossiga para o próximo exercício deste desafio.