연습 - 테스트 데이터를 사용하여 C# 콘솔 애플리케이션에서 논리 문제 노출

완료됨

배열 testData를 사용할 때 MakeChange 메서드는 시뮬레이션된 트랜잭션을 성공적으로 처리할 수 있습니다. 그러나 논리 문제는 임의로 가격이 책정된 항목의 더 큰 데이터 집합을 사용하여 트랜잭션을 시뮬레이션할 때 노출됩니다. 이 문제는 애플리케이션을 철저히 테스트하는 것의 중요성을 보여줍니다.

규격

이 챌린지 연습에서는 트랜잭션을 시뮬레이션하는 데 사용되는 변수를 구성하고 트랜잭션 보고서에 예상된 불일치가 포함되어 있는지 확인해야 합니다.

시뮬레이션된 트랜잭션에는 다음 요구 사항이 적용됩니다.

  • 최상위 명령문은 임의로 생성된 항목 비용을 사용하여 거래를 시뮬레이션합니다.
  • 최상위 문은 2 - 49 범위에서 itemCost에 대한 임의의 값을 생성합니다.
  • 최상위 문은 100건의 트랜잭션을 시뮬레이션합니다.

보고된 트랜잭션 출력에는 다음이 포함되어야 합니다.

  • 100개의 시도된 트랜잭션 레코드입니다.
  • "트랜잭션을 만들 수 없음: InvalidOperationException: 트랜잭션을 완료하는 데 충분한 돈이 제공되지 않았습니다."라는 메시지의 인스턴스입니다.
  • “트랜잭션을 할 수 없습니다: InvalidOperationException: till이 제공된 현금을 변경할 수 없습니다.”라는 메시지의 인스턴스입니다.
  • 보고된 값과 예상된 값 사이의 불일치입니다.

작업 확인

지정된 시뮬레이션 요구 사항을 구현할 때 애플리케이션이 예상 결과를 생성하는지 확인하려면 다음 단계를 완료합니다.

  1. Visual Studio Code에서 ChallengeProject 폴더가 열려 있는지 확인합니다.

  2. 탐색기 보기에서 ChallengeProjectStarter 폴더를 확장합니다.

    Starter 폴더에는 이 Guided 프로젝트 모듈의 애플리케이션 예제가 포함되어 있습니다.

  3. Visual Studio Code 편집기에서 Program.cs 파일을 엽니다.

  4. 디버그 환경을 구성하고 구성을 시작합니다.

  5. 시뮬레이션된 트랜잭션(testData)에 useTestData = true 배열을 사용하도록 애플리케이션을 구성합니다.

  6. 디버그 세션에서 애플리케이션을 실행합니다.

  7. “보고된” 및 “예상된” till 값이 애플리케이션에서 생성된 트랜잭션 보고서에서 동일한지 확인합니다.

  8. 사양 섹션의 시뮬레이션 요구 사항을 충족하도록 애플리케이션 변수를 구성합니다.

  9. 디버그 세션에서 애플리케이션을 실행합니다.

  10. 애플리케이션이 다음 출력 요구 사항을 충족하는지 확인합니다.

    • 트랜잭션 보고서에는 100개의 시도된 트랜잭션 레코드가 포함됩니다.

    • 트랜잭션 보고서에는 보고된 till 값 및 예상된 till 값 간의 불일치가 포함됩니다.

    • 트랜잭션 보고서에는 다음 메시지의 인스턴스가 포함됩니다.

      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.
      

이 연습에 대한 결과의 유효성을 검사한 후에는 이 챌린지의 다음 연습을 진행합니다.