练习 - 使用测试数据在 C# 控制台应用程序中公开逻辑问题

已完成

该方法 MakeChange 在使用数组时 testData 能够成功处理模拟事务。 但是,使用较大的随机定价项数据集模拟事务时,会公开逻辑问题。 此问题演示了全面测试应用程序的重要性。

规格

在此质询练习中,需要配置用于模拟事务的变量,并验证事务报告是否包含预期差异。

以下要求适用于模拟事务:

  • 顶级语句使用随机生成的项成本来模拟事务。
  • 顶级语句在 itemCost 范围 2 - 49中生成随机值。
  • 顶级语句模拟 100 个事务。

报告的事务输出必须包括:

  • 100 个尝试事务的记录。
  • 消息的实例,指出:“无法进行事务:InvalidOperationException:资金不足,无法完成事务。”
  • 消息的实例,指出:“无法进行事务:InvalidOperationException:收银机无法为提供的现金找零。”
  • 报告的预期直到值之间存在差异。

检查你的工作

若要验证应用程序在实现指定的模拟要求时是否生成预期结果,请完成以下步骤:

  1. 确保在 Visual Studio Code 中打开 ChallengeProject 文件夹。

  2. 在 EXPLORER 视图中,展开 ChallengeProjectStarter 文件夹。

    Starter 文件夹包含此指导式项目模块的示例应用程序。

  3. 在 Visual Studio Code 编辑器中打开 Program.cs 文件。

  4. 配置调试环境和启动配置。

  5. 将应用程序配置为将 testData 数组用于模拟事务(useTestData = true)。

  6. 在调试会话中运行应用程序。

  7. 验证“报告”和“预期”,直到应用程序生成的事务报告中的值是否相等。

  8. 配置应用程序变量以满足 “规范” 部分中的模拟要求。

  9. 在调试会话中运行应用程序。

  10. 验证应用程序是否满足以下输出要求:

    • 交易报告包含100条尝试交易的记录。

    • 事务报告包括报告的预期直到值之间的差异。

    • 事务报告包含以下消息实例:

      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.
      

在本练习中验证结果后,继续执行此挑战中的下一个练习。