练习 - 使用测试数据在 C# 控制台应用程序中公开逻辑问题
该方法 MakeChange 在使用数组时 testData 能够成功处理模拟事务。 但是,使用较大的随机定价项数据集模拟事务时,会公开逻辑问题。 此问题演示了全面测试应用程序的重要性。
规格
在此质询练习中,需要配置用于模拟事务的变量,并验证事务报告是否包含预期差异。
以下要求适用于模拟事务:
- 顶级语句使用随机生成的项成本来模拟事务。
- 顶级语句在
itemCost范围2 - 49中生成随机值。 - 顶级语句模拟 100 个事务。
报告的事务输出必须包括:
- 100 个尝试事务的记录。
- 消息的实例,指出:“无法进行事务:InvalidOperationException:资金不足,无法完成事务。”
- 消息的实例,指出:“无法进行事务:InvalidOperationException:收银机无法为提供的现金找零。”
- 报告的预期直到值之间存在差异。
检查你的工作
若要验证应用程序在实现指定的模拟要求时是否生成预期结果,请完成以下步骤:
确保在 Visual Studio Code 中打开 ChallengeProject 文件夹。
在 EXPLORER 视图中,展开 ChallengeProject 和 Starter 文件夹。
Starter 文件夹包含此指导式项目模块的示例应用程序。
在 Visual Studio Code 编辑器中打开 Program.cs 文件。
配置调试环境和启动配置。
将应用程序配置为将
testData数组用于模拟事务(useTestData = true)。在调试会话中运行应用程序。
验证“报告”和“预期”,直到应用程序生成的事务报告中的值是否相等。
配置应用程序变量以满足 “规范” 部分中的模拟要求。
在调试会话中运行应用程序。
验证应用程序是否满足以下输出要求:
交易报告包含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.
在本练习中验证结果后,继续执行此挑战中的下一个练习。